Я боролся с этим некоторое время и был удивлен, как мало информации там. Этот вопрос - лучший, который я смог найти, и даже здесь принятый ответ не говорит, как включить кэширование сущностей. Вот что я узнал.
Чтобы включить кэш второго уровня:
Fluently.Configure()
.Database(/* your DB config */)
.Cache(c => c.UseSecondLevelCache().ProviderClass<CacheProviderClass>())
Вы можете использовать как этот, так и кеш запросов:
Fluently.Configure()
.Database(/* your DB config */)
.Cache(c => c.UseSecondLevelCache()
.UseQueryCache()
.ProviderClass<CacheProviderClass>())
Чтобы включить кэширование для каждой сущности:
.Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<Entity>()
.Conventions.Add(ConventionBuilder.Class.Always(c => c.Cache.ReadWrite()))
)
)
Конечно, вы можете использовать ReadOnly()
или NonStrictReadWrite()
, если хотите.