这可能很容易让我无法过去。
我创建了一个“产品”类,其中包含“附件”列表。每个“附件”只是查找表引用的另一个产品。
表格设置:
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映射,也会感谢任何帮助。我应该能够弄清楚流利的一面。
答案 0 :(得分:1)
你需要多对多的关系。
尝试:
HasManyToMany(x => x.Accessories)
.Table("AccessoryProduct")
.ParentKeyColumn("ParentProductID")
.ChildKeyColumn("ChildProductID")
.Cascade.None()
.Inverse()
.LazyLoad();