J'utilise SysCache2 et NHibernate 2.1.2.4. Peu importe combien j'essaie, NHibernate continue à charger les instances précédentes d'une entité.Pourquoi NHibernate ne supprime-t-il pas les entités du cache de second niveau lorsqu'elles sont mises à jour?
Ma classe est mappée ReadWrite en cache.
La zone de cache est la zone par défaut, c'est-à-dire le nom complet des types de la classe.
J'effectue toutes les actions d'une transaction.
La base de données est définitivement en cours de mise à jour et lorsque j'efface manuellement le cache ASP.NET, le problème disparaît.
que je fais une simple mise à jour, comme ceci:
using(var transaction = NHSession.BeginTransaction())
{
var foo = Session.Load<Foo>(_fooId);
foo.Name = "A new name";
transaction.Commit();
}
Puis-je recharger l'entité plus tard (dans une autre session dans l'application), comme ceci:
using(var transaction = NHSession.BeginTransaction())
{
var foo = Session.Load<Foo>(_fooId);
Response.Write(foo.Name);
transaction.Commit();
}
.. mais le nom de Foo est toujours l'ancien nom, pas le nouveau nom que je viens de mettre à jour!
Salut merci J'ai vérifié les logs et l'entité n'est pas invalidée quand elle est mise à jour. – cbp