如何在代码中配置二级缓存(不是通过xml)
我目前的设置是:
public NHCachingSetup(Configuration cfg)
{
// use first level cache
cfg.Cache(x =>
{
x.UseQueryCache = true;
x.Provider<SysCacheProvider>();
});
// set 60 min expiration time
cfg.SessionFactory().Caching
.WithDefaultExpiration(60);
}
答案 0 :(得分:3)
我用NH 3.3做的方式就像
var configure = new Configuration();
...
configure.Cache(x => x.UseQueryCache = true)
...
configure.SessionFactory().Caching
.Through<SysCacheProvider>().WithDefaultExpiration(1440);//secs!
您需要的地图中的编辑: -
Cache(x => x.Usage(CacheUsage.ReadOnly));
结束修改
然后使用你可以做类似的事情(这为我缓存一个查找表): -
Db.Query<SpamAssassin>().Cacheable().CacheMode(CacheMode.Normal).ToList();
答案 1 :(得分:0)
得到了它:
cfg.SetProperty(Environment.BatchSize, "100")
.SetProperty(Environment.UseQueryCache, "true")
.SetProperty(Environment.UseSecondLevelCache, "true")
.Cache(x => { x.Provider<SysCacheProvider>(); });