2010-07-18 6 views
3

내가 두 개의 테이블이따르면 ComponentId 및 ComponentDependencyID합니다. . (아이디 필드 의 구성 요소에 대한 외부 키는 모두 테이블nhibernate에서 역방향 조회를 수행하는 방법은 무엇입니까?</p> <ol> <li><strong>구성 요소</strong></li> <li><strong>ComponentDependencies</strong></li> </ol> <p><strong>ComponentDependencies</strong> 두 개의 열이 있습니다 :

나는 유창 nhiberate를 사용하고 그리고 난 내 구성 요소 개체를 가지고 있습니다

public virtual IList<ComponentDependency> Dependencies { get; set; } 

내 ComponentMap 클래스

, 난 NHibernate에지도가를 : 내가 구성 요소 개체가있을 때

HasMany(x => x.Dependencies) 
      .AsBag().Inverse(); 

그래서, 내가 종속성의 목록을 볼 수 있습니다.

어쨌든 "역"목록이있는 추가 속성을 가질 수 있습니까? 내 말은 내가이 현재 구성 요소의 관계에 종속 구성 요소 인 모든 항목이있는 또한

IList<ComponentDependency> 

이다 "DependentOf"라는 속성이 원하는 무엇입니까?

답변

1

이것은 ComponentDependencies 연결 테이블을 통해 다 대 다 관계가있는 구성 요소의 BOM (bill-of-materials) 문제와 유사합니다. 두 열을 상위 키 열로 교체하면 두 가지 관계 방향을 모두 매핑 할 수 있습니다.

HasManyToMany(x => x.Dependencies).Table("ComponentDependencies") 
    .ParentKeyColumn("ComponentId").ChildKeyColumn("ComponentDependencyId"); 

HasManyToMany(x => x.DependentOf).Table("ComponentDependencies") 
    .ParentKeyColumn("ComponentDependencyId").ChildKeyColumn("ComponentId");