2009-12-09 3 views
0

없이 일대 다 관계는 다음과 같은 클래스와 테이블 디자인은 NHibernate에 가능 아니라고, 나의 이해는 정확 :자 NHibernate는 양방향 연관

  • A :

    public class Parent 
    { 
        public virtual Guid Id { get; set; } 
        public virtual ISet<Child> Children { get; set; } 
        ... 
    } 
    
    public class Child 
    { 
        public virtual Guid Id { get; set; } 
        ... 
    } 
    
    table Parent { Id, ... } 
    table Child { Id, ParentId (not null), ... } 
    

    그래서 다음을 통지 부모와 자식 간의 일대 다 연관

  • ISet 사용
  • 자식에서 부모에게 양방향 연결 없음
  • ,
  • 자녀의 ParentId 열은 당신이 설명하는 상황은 매우 의도와 NHibernate에 의해 지원됩니다

답변

1

내 무릎 반사 반응이 지원하지만 내가 생각하는 것을 당신이 옳다라고하는 것이 었습니다. 옵션은 양방향 관계이거나 자식 테이블의 nullable ParentId 열입니다. 여기

는 Ayende은 NH의 버그 추적기에 들어간 흥미로운 스레드의 http://nhjira.koah.net/browse/NH-1050 (가 NH의 이전 릴리스입니다하지만 난 대답은 같은 생각)

UPDATE 5/7/11

뭔가 이상한은 NHibernate에 JIRA (즉 어떤 도메인 이름)으로 벌어지고있는 것 같다. 링크는 현재 https://nhibernate.jira.com/browse/NH-1050에 있습니다. 그러나 야생에서 NHibernate 3을 가지고이 질문이 여전히 문제인지를 확인하지 않았습니다.

+0

은 (Ayende 기사에) 위의 링크가 깨진 것 같습니다. – CyberMonk

+0

해결되었습니다. –

0

널 (null)이 아닙니다.

+0

나는이 작업을 수행 할 수있는 방법 - 워드 프로세서에 따른 :. 협회의 컬럼이 NOT NULL로 선언 된 경우 ", NHibernate에이 연관을 생성 (변경) 할 때 제약 조건 위반이 발생할 수 있습니다이 문제를 방지하려면 사용합니다 많은 값 엔드와 양방향 연관 (세트 또는 가방) 역 = "참"으로 표시. " – cbp

+0

그래서 사용해보십시오'<설정 역 = "진정한"/>'부모의 컬렉션의-어린이를위한 매핑한다. – yfeldblum

+0

그러나이 모델을 더 혼란하게하기 때문에 나는, 양방향 연결을하지 않으려는 내 요구 사항의 하나. – cbp

관련 문제