在导航属性中添加对同一记录的多个引用

时间:2016-12-23 12:49:56

标签: entity-framework entity-framework-6

在我的EF 6 Model First应用程序中,我有一个具有多对多导航属性的实体到另一个实体。在第一个实体中,我需要在navigation属性中添加几个对同一记录的引用。

第一个实体是“saleslistItem”,第二个实体是“warehouseItem”。通常这里会有一对一的关系,但特别会有一些捆绑,其中一个“saleslistItem”包含几个“warehouseItems”。 “WarehouseItem”也可以包含在几个“salesListItems”中。在项目结束时,我的客户说,测试它,“saleslistItem”必须能够包含几个相同类型的“WarehouseItems”(如两盒烟熏火腿)。

这些数据在我的代码中的几个地方使用。 (即做销售从仓库中删除物品)如果我可以添加几个相同的参考,我的代码将无需任何修改即可使用。但是在导航属性的实现中,使用了“hashtable”-collection,并且此集合需要唯一的条目。这里有解决方法吗?由于数据量很小,性能无关紧要。

如果没有这样的解决方法,是否可以将值与导航属性的实例一起存储?也许它被实现为join-table中的一个字段???

还有其他建议吗? 需要一个解决方案,以便客户支付账单的最后一部分!

1 个答案:

答案 0 :(得分:0)

所以你现在有1来自1 WarehouseItem SalesListItem to SalesListItem`的via a ForeignKey in?听起来像你需要:

public class SalesListItem
{
    public virutal ICollection<SalesListWarehouseItem> WareHouseItems { get; set; }
}

public class SalesListWarehouseItem
{
    public virtual SalesListItem Parent{ get; set; }
    public virtual WarehouseItem WarehouseItem { get; set; }
    public int Quantity { get; set; } // maybe double?
}