Frage

Ich habe versucht, Cache -Regionen mit fließendem Nhibernate zu implementieren, und ich habe bisher Folgendes durchgeführt:

1) Setup Caching in fließend.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) Ich habe meine Klassenmap geändert, um den Cache zu aktivieren und den Bereich der Wahl festzulegen:

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

Hoffentlich habe ich das oben genannte richtig gemacht, aber ich kann nicht wirklich herausfinden, wo ich die Priorität und die Cache -Dauer für jeden Bereich konfigurieren soll. Wissen Sie, wie das geht? Und wenn Sie in dem obigen Code Fehler finden, würde ich das Feedback sehr schätzen.

War es hilfreich?

Lösung

Sie müssen die Prioritäts- und Ablaufzeit für diese Region in der SYSCache -Konfiguration in Web/App.config hinzufügen. Sich ansehen Dieser ausgezeichnete Beitrag Für eine großartige Erklärung für die Verwendung von Cache der zweiten Ebene. Die Beispiele verwenden Vanille -Nhibernate, aber Sie sollten die Idee bekommen - das Bitg über die Konfiguration von SYSCACHE ist am Ende des Beitrags.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top