gpt4 book ai didi

c# - Nhibernate 使用 Fluent 禁用二级缓存 - 也禁用假缓存

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:32 24 4
gpt4 key购买 nike

var config =
Fluently
.Configure()
.Database(MsSqlConfiguration.MsSql2008
.IsolationLevel(IsolationLevel.ReadCommitted)
.ConnectionString(connectionString)
.DefaultSchema(defaultSchema)
.FormatSql())
.ExposeConfiguration
(
c => c.SetProperty("current_session_context_class", sessionContext)
);

if (secondLevelCacheSettings.UseSecondLevelCache)
{
if (secondLevelCacheSettings.CacheType == SecondLevelCacheSettings.SecondLevelCacheType.Memcached)
{
config.Cache(c => c.ProviderClass<MemCacheProvider>().UseQueryCache())
.ExposeConfiguration(c => c.SetProperty("expiration",
secondLevelCacheSettings.CacheExpirationMinutes.ToString()));
}
if (secondLevelCacheSettings.CacheType == SecondLevelCacheSettings.SecondLevelCacheType.HashTable)
{
config.Cache(c => c.ProviderClass<HashtableCacheProvider>().UseQueryCache());
}
}

当我不想使用二级缓存时,我想完全禁用它。似乎默认配置使用的是 FakeCache。如何同时禁用 FakeCache?

也在我看到的日志中,

09-04 14:14:02,088 WARN Second-level cache is enabled in a class, but no cache provider was selected. Fake cache used. - [4] NHibernate.Cache.NoCacheProvider [(null)]

似乎二级缓存默认启用,即使我们没有配置它。禁用它的更清洁方法是什么。

最佳答案

config.Cache(x => x.Not.UseSecondLevelCache());

解决了我的问题。它删除了所有日志和不必要的 cpu 周期。这是通过流利的。如果您正在使用配置,则可能需要以下配置。

<property name="cache.use_second_level_cache">
false
</property>

关于c# - Nhibernate 使用 Fluent 禁用二级缓存 - 也禁用假缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com