2010-07-14 7 views
0

NHibernate를 사용하여 도메인 객체를로드하는 웹 페이지가 있습니다. 개체의 상태는 페이지 컨트롤에 저장되고 사용자가 저장 단추를 클릭하면 새 개체가 만들어지고 해당 속성 (Id에 포함됨)이 페이지 컨트롤에서 채워집니다. 그런 다음 객체에 session.Save()를 호출합니다.왜 NHibernate는 삽입하지 않고 도메인 객체를 업데이트해야한다는 것을 인식하지 못합니까?

나에게 이것은 Id 속성이 설정되어 있고 저장되지 않은 값과 다르기 때문에 NHibernate가 INSERT 대신 UPDATE를 사용해야한다는 것을 의미합니다. 그러나, NHibernate 그것을 삽입하려고합니다.

<id name="Id" column="StoredWillId" unsaved-value="0"> 
    <generator class="native" /> 
</id> 

사람이 설명 할 수 여기 무슨 일이야 :

나는 아래의 아이디에 관한 매핑 파일의 부분을 포함했다?

감사

데이비드

답변

3

전화 session.SaveOrUpdate(). session.Save() inserts, session.Update() 업데이트, session.SaveOrUpdate()는 Id가 0이면 저장하고, 그렇지 않으면 업데이트합니다.

+0

아! 나는 지금 당황 스럽다. – David

관련 문제