2010-11-18 2 views
2

Nhibernate에서 관계 테이블을 관리하는 더 좋은 방법이 있는지 궁금합니다. 현재 사용자가 처음 A를 만들면 .Save를 호출하면 모든 것이 정상입니다. 그러나로드하고 변경하는 경우 해당 레코드를 모두 삭제하고 다시 작성하기 만하면됩니다. 더 이상 유효하지 않은 레코드를 삭제하고 새 레코드를 만들고 유효하고 데이터베이스에있는 레코드 만 남기고 싶습니다.Nhibernate 관계 테이블을 관리하는 더 나은 방법

현재 목록을보고 더 이상 선택되지 않은 목록을 삭제 한 다음 목록에 추가 된 목록을 새로 추가합니다. 내가 목록을 두 번 반복하고 있기 때문에 최선의 방법 같지는 않습니다. 거기에 LINQ 한 라이너 솔루션이 있습니까?

기본적으로 내가 현재 뭘하는지 :

루프 A를 통해 B를 통해 뭐죠하지 B에서
루프를 삭제하고 사전에

감사에 무슨하지 추가 할 수 있습니다.

답변

3

귀하의 A와 B가 실제로 무엇인지 확실하지 않습니다.

루트 엔티티의 하위 항목 인 경우 cascade = "all-delete-orphan"을 사용할 수 있습니다. 뉴 햄프셔는 더 이상 목록에없는 모든 자녀를 삭제합니다.

루트 엔티티 목록을 관리하는 경우이 "추가 된 항목 찾기/제거 된 항목 찾기"비즈니스를 수행해야합니다.

var removedItems = oldList.Except(newList); 
var addedItems = newList.Except(oldList);