Fluent Nhibernate Many to Many Mapping Way

只谈情不闲聊 提交于 2019-12-03 02:08:41

Apparently you have a many-to-many relationship: An order can have many items and an item can belong to many orders. In a relational database you need to express this with a separate table which I presume you have - let's assume this table is called OrdersItems.

Following the Store/Product example from the Fluent NHibernate documentation you would create an Items property in an Order and an Orders property in Item:

class Order
{
    public virtual IList<Item> Items { get; protected set; }
}

class Item
{
    public virtual IList<Order> Orders { get; protected set; }
}

And the mappings:

public class OrderMap : ClassMap<Order>
{
    public OrderMap()
    {
        HasManyToMany(x => x.Items)
           .Cascade.All()
           .Table("OrdersItems");
    }
}

public class ItemMap : ClassMap<Item>
{
    public ItemMap()
    {
        HasManyToMany(x => x.Orders)
           .Cascade.All()
           .Inverse()
           .Table("OrdersItems");
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!