SysCache2와 NHibernate 2.1.2.4를 사용하고 있습니다.NHibernate가 2 차 레벨 캐시가 업데이트되었을 때 엔티티를 제거하지 않는 이유는 무엇입니까?
아무리 노력해도 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();
}
.. 하지만 Foo의 이름은 여전히 이전 이름이고, 방금 업데이트 한 새 이름이 아닙니다!
안녕하세요, 로그를 확인했습니다 및 엔터티가 업데이트 될 때 무효화되지 않습니다. – cbp