nhibernate L2缓存:按代码配置

时间:2013-03-19 05:46:14

标签: nhibernate syscache2 syscache

如何在代码中配置二级缓存(不是通过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);
        }

2 个答案:

答案 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>(); });