2010-01-10 4 views
0

부모 개체에 자식 개체 모음이있는 매핑이 정의되어 있습니다. 내 디자인에서는 부모 개체의 컬렉션에서 제거하고 부모 개체를 다시 저장하지 않고도 하위 개체를 삭제할 수 있기를 바랍니다. 그러나 이것을 시도하면 "삭제 된 객체가 다시 저장 될 것"이라는 오류가 발생합니다. 이 문제를 방지 할 수있는 방법이있어 단순히 자식 개체를 삭제할 수 있으며 부모 개체 컬렉션에서도 제거 할 수 있습니다. 그것은 두 배의 일을하는 것처럼 느껴집니다. 이상 적으로 부모 컬렉션을 NHibernate의 관점에서 읽기 전용으로 취급하고 싶습니다.NHibernate의 컬렉션을 읽기 전용으로 매핑 할 수 있습니까?

답변

0

매핑 파일을 게시하면 도움이되지만 컬렉션 매핑에 Inverse=true을 추가해야하는 것처럼 들립니다. 즉, 하위 오브젝트는 상위가 아닌 저장 또는 갱신을 처리해야합니다.

그러나 데이터베이스에서는 모두 동일하게 모델링됩니다. 하위 행에는 부모 행 ID에 대한 열이 있어야합니다. NHibernate는 비록 Inverse 속성을 기반으로 다른 SQL을 만들 것이다. 좀 더 자세하게 설명하고 싶지만 NHibernate를 직접 배우고 있습니다.

0

나는 부모의 매핑 파일에있는 자식 개체 모음을 cascade="none"으로 설정해야한다고 생각합니다.

물론 부모 개체 컬렉션에 할당하고 부모 개체를 업데이트하여 자식 개체를 저장하지 못하게 할 수도 있습니다. 그것이 맞다면 당신의 솔루션을 얻었을 것입니다.

관련 문제