J'ai réussi à configurer le cache L2 pour Get \ Load dans FHN, mais cela ne fonctionne pas pour les requêtes configurées avec l'interface ICriteria - il ne met pas en cache les résultats de ces requêtes.NHibernate L2 Cache - configuration nHibernate fluide
Est-ce que quelqu'un sait pourquoi?
Les configurations sont les suivantes:
ICriteria:
return unitOfWork
.CurrentSession
.CreateCriteria(typeof(Country))
.SetCacheable(true);
Entité Mapping:
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);
}
}
Et la configuration usine de session pour la propriété de base de données:
return() => MsSqlConfiguration.MsSql2005
.ConnectionString(BuildConnectionString())
.ShowSql()
.Cache(c => c.UseQueryCache()
.QueryCacheFactory<StandardQueryCacheFactory>()
.ProviderClass(configuration.RepositoryCacheType)
.UseMinimalPuts())
.FormatSql()
.UseReflectionOptimizer();
Vive
AWC