Domanda

Ho cercato di implementare le regioni della cache con NHibernate fluente e ho fatto la seguente finora:

1) la cache di configurazione in Fluently.Configure ():

private static ISessionFactory CreateSessionFactory()
{
    string csStringName = Environment.MachineName;

    var nhibConfigProps = new Dictionary<string, string>();
    nhibConfigProps.Add("current_session_context_class","web");

    var cfg = Fluently.Configure()
        .Database(MsSqlConfiguration.MsSql2008
                      .ConnectionString(c => c.FromConnectionStringWithKey(csStringName))
                      .ShowSql()
                      .Cache(cache=>cache.ProviderClass<NHibernate.Caches.SysCache2.SysCacheProvider>().UseQueryCache()))
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>())
        .ExposeConfiguration(config => config.AddProperties(nhibConfigProps))
        .ExposeConfiguration(config=> config.EventListeners.DeleteEventListeners = new IDeleteEventListener[] {new SoftDeleteListener()})
        .ExposeConfiguration(config => new SchemaUpdate(config).Execute(false, true))
        .BuildSessionFactory();

    return cfg;
}

2) ha cambiato la mia ClassMap per abilitare la cache, e impostare la regione di scelta:

 public UserMap()
 {
     Cache.ReadWrite().Region("User");
     ...
 }

Spero di aver fatto quanto sopra in modo corretto, ma non posso davvero capire dove per configurare la durata di priorità e la cache per ogni regione. Sai come fare? E se vi capita di trovare difetti nel codice di cui sopra mi piacerebbe davvero apprezzare le valutazioni.

È stato utile?

Soluzione

Sarà necessario aggiungere il tempo di priorità e di scadenza per questa regione nella configurazione syscache in web / app.config. Date un'occhiata a questo ottimo post per una grande spiegazione di utilizzare cache di secondo livello. Gli esempi utilizzano vaniglia NHibernate, ma si dovrebbe ottenere l'idea -. Il bit sulla configurazione syscache si trova alla fine del post

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top