Ceci est possible de FNH, dans l'exemple ci-dessous voir le 'Cache' propriété:
return Fluently.Configure(fileConfiguration)
.Database(MsSqlConfiguration
.MsSql2005
.ConnectionString(c => c.FromConnectionStringWithKey("Temp"))
.ShowSql()
.Cache(c => c.ProviderClass(typeof(NHibernate.Cache.HashtableCacheProvider).AssemblyQualifiedName)
.UseQueryCache()))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<IMap>())
.ExposeConfiguration(c => {
c.EventListeners.PostLoadEventListeners = new IPostLoadEventListener[] {new TestPostLoadListener()};
})
.BuildSessionFactory();
Vive
AWC
Remarque, pour Fluent NHibernate> = 3.4.0.0 il semble que la configuration est légèrement différente. Utiliser le paquet NuGet pour SysCache de http://nuget.org/packages/NHibernate.Caches.SysCache
return Fluently.Configure(fileConfiguration)
.Database(MsSqlConfiguration
.MsSql2005
.ConnectionString(c => c.FromConnectionStringWithKey("Temp"))
.ShowSql())
.Cache(c => c.ProviderClass<SysCacheProvider>().UseQueryCache())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<IMap>())
.ExposeConfiguration(c => {
c.EventListeners.PostLoadEventListeners = new IPostLoadEventListener[] {new TestPostLoadListener()};
})
.BuildSessionFactory();
méthode de ProviderClass accepte Type de paramètre et de l'utilisation peut être réécrite comme 'c.ProviderClass()'. :) –
Juste une note que vous connaissez probablement déjà: n'utilisez pas HashTable Cacheprovider pour le code de production. – Hace
Pourquoi pas? Quelles sont les autres options disponibles? – Seva