2010-02-17 3 views
0

내가 부모 테이블, 주문 및 아이 테이블, [주문 정보], 나는 유창한 매핑 등의 설정이이 기록 클래스)예기치 않은 행 개수 관련된 자녀와 부모 레코드를 삭제

HasMany<OrderDetails> 
(x => x.Details).KeyColumn("OrderId").Cascade.AllDeleteOrphan().Inverse(); 

(아이에서 [주문 정보] 클래스) 내가 호출하여 부모 개체를 삭제하려고

References(x => x.ParentOrder).Column("OrderId").Not.Nullable().Cascade.None(); 

-

,
session.Delete(parent); 
session.Flush(); 

자식 레코드가 하나 뿐인 경우에만 작동하며 둘 이상의 자식 레코드가있는 경우 자식은 삭제되지만 부모는 삭제되지 않습니다. 그리고 나는 무서워하게된다 - 예기치 않은 행 수 오류.

나는 이것이 내가하고있는 바보 같은 것이라고 확신하지만, 웹을 통해 어슬렁 거리는 것이 아무것도 나타나지 않았다.

답변

1

확인

덕분에, 나는 그것이 내가 바보였다,이 문제를 파악,하지만 대답은 다른 사람을 도움이 될 수 있습니다, 그래서 여기 간다.

[주문 세부 정보] 테이블에는 복합 키가 있으며 [주문] 및 [제품] 테이블에 연결되어 있습니다 (예,이 제품은 내가 작업중인 Northwind 데이터베이스입니다). 테스트를 위해 필자는 Products 테이블을 매핑하지 않았으며 복합 키가 아닌 단일 기본 키를 사용하여 [Order Details] 클래스를 마크 업했습니다. 따라서 Nhibernate가 키를 기반으로 행을 삭제하면 데이터베이스에 여러 행이있는 반면 삭제되는 행은 하나뿐입니다. 그래서 내가 그 오류를 얻었습니다. 오히려 Nhibernate의 영리한.