【问题标题】:NHibernate L2 Cache - fluent nHibernate configurationNHibernate L2 Cache - 流畅的 nHibernate 配置
【发布时间】:2010-01-11 15:57:06
【问题描述】:

我已设法为 FHN 中的 Get\Load 配置 L2 缓存,但它不适用于使用 ICriteria 接口配置的查询 - 它不会缓存这些查询的结果。

有人知道为什么吗?

配置如下:

IC 标准:

 return unitOfWork
        .CurrentSession
        .CreateCriteria(typeof(Country))
        .SetCacheable(true);

实体映射:

public sealed class CountryMap : ClassMap<Country>, IMap
{
    public CountryMap()
    {
        Table("Countries");
        Not.LazyLoad();
        Cache.ReadWrite().IncludeAll();
        Id(x => x.Id);
        Map(x => x.TwoLetter);
        Map(x => x.ThreeLetter);
        Map(x => x.Name);
    }
}

以及数据库属性的会话工厂配置:

return () => MsSqlConfiguration.MsSql2005
                             .ConnectionString(BuildConnectionString())
                             .ShowSql()
                             .Cache(c => c.UseQueryCache()
                                    .QueryCacheFactory<StandardQueryCacheFactory>()
                                    .ProviderClass(configuration.RepositoryCacheType)
                                    .UseMinimalPuts())
                             .FormatSql()
                             .UseReflectionOptimizer();

干杯

AWC

【问题讨论】:

    标签: nhibernate configuration caching fluent-nhibernate icriteria


    【解决方案1】:

    您是否尝试在配置中添加对 UseQueryCache() 方法的调用?

    .Database(MsSqlConfiguration.MsSql2008
        .ConnectionString(c => c.FromConnectionStringWithKey(csStringName))
        .ShowSql()
        .Cache(cache=>cache.ProviderClass<NHibernate.Caches.SysCache2.SysCacheProvider()
        .UseQueryCache()))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 2013-02-12
      相关资源
      最近更新 更多