2009-09-29 4 views
1

이것은 아마도 내가 과거에 얻을 수없는 쉬운 것일 수 있습니다.FluentNHibernate 조회 테이블

"액세서리"목록이있는 "제품"클래스를 만들었습니다. 각 "액세서리"는 조회 테이블에서 참조하는 또 다른 제품입니다.

표 설정 : 내가 좋아하는 것

Product 
------- 
ProductID int 
Name varchar(200) 

AccessoryProduct 
---------------- 
ID int 
ParentProductID int 
ChildProductID int 

같은 방식으로 액세서리의이 목록에 액세스 할 수 있도록 :

foreach(Product p in product.Accessories) 
string s = p.Name; 

내가 난처한 상황에 빠진거야 부분은 FluentNHibernate입니다 이 룩업을위한 맵핑.

Id(x => x.ProductID); 
Map(x => x.Name); 
HasMany(x => x.Accessories) 
.Table("AccessoryProduct") 
.KeyColumn("ParentProductID") 
.Cascade.None() 
.Inverse() 
.LazyLoad(); 

이 현재 대신 룩업 테이블 (AccessoryProduct)의 제품 테이블에서 "ParentProductID"를 찾는 쿼리를 만드는 : 내 ProductMap 클래스 내에서, 나는 다음과 같은 매핑을 가지고있다.

룩업 테이블을 유창하게 매핑 할 수있는 간단한 방법이 있습니까?

xml 매핑이 포함되어 있어도 도움이 될 것입니다. 나는 유창한면을 알아낼 수 있어야합니다.

답변

1

다 - 대 - 다 관계가 필요합니다.

시도 :

HasManyToMany(x => x.Accessories) 
.Table("AccessoryProduct") 
.ParentKeyColumn("ParentProductID") 
.ChildKeyColumn("ChildProductID") 
.Cascade.None() 
.Inverse() 
.LazyLoad(); 
관련 문제