1

FHN で Get\Load の L2 キャッシュを構成できましたが、ICriteria インターフェイスを使用して構成されたクエリでは機能しません。これらのクエリの結果はキャッシュされません。

誰かが理由を知っていますか?

構成は次のとおりです。

I基準:

 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

4

1 に答える 1

2

構成で UseQueryCache() メソッドへの呼び出しを追加しようとしましたか?

.Database(MsSqlConfiguration.MsSql2008
    .ConnectionString(c => c.FromConnectionStringWithKey(csStringName))
    .ShowSql()
    .Cache(cache=>cache.ProviderClass<NHibernate.Caches.SysCache2.SysCacheProvider()
    .UseQueryCache()))
于 2010-06-03T08:06:12.473 に答える