我有 Orders、Items 和 OrderItems 实体,Orders 和 Items 表之间有 n:n 关系。我正在使用 Fluent Hibernate 进行映射,在“订单”实体中有“列表”属性,该属性具有“保护集”。我在插入时面临以下问题。
new Order.Items.Add(alreadyexistingitem);
由于它已经存在项目,在 orderitems 表中,需要将一条记录插入到 orderitems 表中,其中包含新的 orderid 和现有的项目 id。但是只有新的订单详细信息被插入到订单表中,而不是关联表中。
在订单实体中为“items”包设置了“Inverse”属性。所以,我需要在添加如下项目时附加新添加的订单,但我该怎么做,因为它是带有保护集的列表对象。
Orders.Items.Add(alreadyexistingitem, *order = "neworder"*);
下面是映射:
model.Override<Order>(m =>
{
m.HasManyToMany(c => c.Items)
.Table(Constants.TABLE_PREFIX + "OrderItem")
.Inverse()
.Cascade.AllDeleteOrphan();
});
model.Override<Item>(m => m.HasManyToMany(c => c.Orders)
.Table(Constants.TABLE_PREFIX + "OrderItem")
.Cascade.None());