1

这可能是一个我似乎无法克服的简单问题。

我创建了一个“产品”类,其中包含“附件”列表。每个“附件”只是查找表引用的另一个产品。

表设置:

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

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

我希望能够通过以下方式访问此附件列表:

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

我被难倒的部分是这个查找的 FluentNHibernate 映射。在我的 ProductMap 类中,我有以下映射:

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

这当前正在创建一个查询,该查询在 Product 表中而不是查找表 (AccessoryProduct) 中查找“ParentProductID”。

是否有一种我缺少的简单方法可以流畅地映射查找表?

任何帮助表示赞赏,即使它涉及 xml 映射。我应该能够弄清楚流利的一面。

4

1 回答 1

1

你需要一个多对多的关系。

尝试:

 HasManyToMany(x => x.Accessories)
 .Table("AccessoryProduct")
 .ParentKeyColumn("ParentProductID")
 .ChildKeyColumn("ChildProductID")
 .Cascade.None()
 .Inverse()
 .LazyLoad();
于 2009-09-29T18:05:44.370 回答