NHibernate에서 SaveOrUpdate와 Save/Update의 차이점은 무엇입니까? 왜 당신은 단지 항상 SaveOrUpdate를 사용하지 않습니까? 또한, SaveOrUpdateCopy의 요점은 무엇입니까?SaveOrUpdate 대 NHibernate에서의 업데이트와 저장
http://nhibernate.info/doc/nh/en/index.html
그러나 절벽 노트 :
Save()
이 식별자 않고 새로운 오브젝트를 세션에 첨부합니다 내가 할 수있는 것보다
일반적으로 SaveOrUpdate()가 필요하지 않습니다. 왜냐하면 NHibernate는로드 된 모든 객체에 변경을 추적하기 때문입니다. 개체를 업데이트하려면 Session.Get()을 사용하고 Session.Flush()를 호출하여 변경하십시오. –
'SaveOrUpdate()'또는'Flush()'/'Commit()'코드에서 더 읽기 쉽고 의도가 드러나는 것은 무엇입니까? 아니면 (의미 론적 또는 다른 방식으로) 차이를 만들어 내지 않는가? –
세션을 명시 적으로 플러시하지 않아도됩니다. 트랜잭션을 커밋하거나 세션이 범위를 벗어나거나 폐기되는 경우 변경 사항은 자동으로 지속됩니다 (또는 어떤 이유로 든 필요한 경우 이전, ID 생성 등). 플러시는 읽기 ioslation 또는 다른 esoterica 때문에 자동으로 변경을 강제 할 필요가있을 때 의도적으로 나타냅니다 (나에게). NH에 익숙한 사람이라면 첨부 된 엔티티에 대한 암시적인 'Update'도 이해할 것이므로 명시 적 SaveOrUpdate 문과 동일하게 생각하는 경향이 있습니다. –