NHibernate二级缓存-fluent NHibernate配置

NHibernate二级缓存-fluent NHibernate配置,nhibernate,configuration,caching,fluent-nhibernate,icriteria,Nhibernate,Configuration,Caching,Fluent Nhibernate,Icriteria,我已经设法在FHN中为Get\Load配置了二级缓存,但是对于使用ICriteria接口配置的查询,它不起作用-它不会缓存这些查询的结果 有人知道为什么吗 配置如下: ICriteria: return unitOfWork .CurrentSession .CreateCriteria(typeof(Country)) .SetCacheable(true); 实体映射: public sealed class CountryMap : Cl

我已经设法在FHN中为Get\Load配置了二级缓存,但是对于使用ICriteria接口配置的查询,它不起作用-它不会缓存这些查询的结果

有人知道为什么吗

配置如下:

ICriteria:

 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);
    }
}
公共密封类CountryMap:ClassMap,IMap
{
公共国家地图()
{
表(“国家”);
不是。懒汉();
Cache.ReadWrite().includeal();
Id(x=>x.Id);
Map(x=>x.2个字母);
Map(x=>x.3个字母);
Map(x=>x.Name);
}
}
以及数据库属性的会话工厂配置:

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


AWC

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

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