FluentNHibernate查找表

时间:2009-09-29 17:57:34

标签: c# nhibernate fluent-nhibernate lookup-tables

这可能很容易让我无法过去。

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

表格设置:

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表中查找“ParentProductID”而不是查找表(AccessoryProduct)。

我是否缺少一种简单的方法,可以对查找表进行流畅的映射?

即使它涉及xml映射,也会感谢任何帮助。我应该能够弄清楚流利的一面。

1 个答案:

答案 0 :(得分:1)

你需要多对多的关系。

尝试:

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