单个地图类中的两个表映射

时间:2012-09-12 06:41:58

标签: nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

我有一个像这样的表结构

table Collection
  Id
  Name

table Product
  Id
  Name

table Item
  Id
  Collection_Id
  Product_Id

我想要的是将上面的Collection映射到一个名为:

的单个类
Class Collection
  Id
  Name
  List<Product> Products

我的Product类是:

Class Product
  Id
  Name

如何用流利的nhibernate做到这一点?有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您需要的是多对多的映射。

您需要有一个List&lt;&gt;在另一个对象的两个类和您的流畅文件中的以下映射

    HasManyToMany(x => x.Products)
        .Table("tblCollection_Product")
        .Inverse()
        .Cascade.All();

    HasManyToMany(x => x.Collections)
        .Table("tblCollection_Product")
        .Cascade.All();

有一篇很好的文章介绍了你要做的事情here