필드가 변경되었는지 확인해야하는 호출이 있습니다. 그러나 해당 엔티티 ID를 사용하여 호출하면 이전 버전이 아닌 동일한 엔티티를 반환합니다.엔티티 필드가 NHibernate에서 변경되었는지 확인
Entity e = Dao.Get(id);
//At this point e.Field is X
e.Field = y;
Dao.Save(e);
Entity Dao.Get(Guid id)
{
return Session.Get(id);
}
Entity Dao.Save(Entity e)
{
Entity olde = Session.Get(e.Id);
if (e.Field != olde.Field) <--- e.Field == olde.Field so it does not run.
DoBigMethod(e);
return e;
}
은 어떻게 Entity 클래스에의 onChange 방법을 추가하지 않고이 상황을 처리 않습니다.
사용자가 변경되면 많은 코드가 실행된다는 플래그가 있습니다. 이 코드는 특정 경우에 예외를 발생시킵니다. 다른 필드를 업데이트하는 중이라면이 확인 작업을 수행 할 필요가 없습니다. 이 경우에는 예외가 발생하지 않을 것입니다. – Thad
나는 내 대답에 더 많은 아이디어를 추가했다. 희망이 도움이됩니다. –