Я использую SysCache2 и NHibernate 2.1.2.4.
Как бы я ни старался, NHibernate продолжает загружать предыдущие экземпляры объекта.
Мой класс отображается как кэшируемый ReadWrite.
По умолчанию используется область кэша, то есть полное имя типов класса.
Я выполняю все действия внутри транзакции.
База данных определенно обновляется,и когда я вручную очищаю кеш ASP .NET, проблема исчезает.
Я делаю простое обновление, например:
using(var transaction = NHSession.BeginTransaction())
{
var foo = Session.Load<Foo>(_fooId);
foo.Name = "A new name";
transaction.Commit();
}
Затем я перезагружаю сущность позже (вдругой сеанс в приложении), например:
using(var transaction = NHSession.BeginTransaction())
{
var foo = Session.Load<Foo>(_fooId);
Response.Write(foo.Name);
transaction.Commit();
}
... но имя Фу все еще старое, а не новое, я просто обновил его до!