我在创建新应用时遇到了问题。该应用程序是关于在特定日期进入的新员工。由于他们需要一些硬件(如笔记本,键盘等),我们希望提供未来几天内将要出现的所有新员工的概述。
所以有以下型号:
项:
public class Entry{
public IEnumerable<Hardware> Hardware {get; set;}
...
}
设备:
public class Hardware{
public string Name {get; set;}
public OrderStatus Status {get; set}
}
OrderStatus:
public enum OrderStatus{
Nothing,
Ordered,
Arrived,
Ready
}
起初这看起来很好,因为对于每个条目我都想创建一个新的硬件数据集(一对多)。现在我决定维护一个硬件列表,并将硬件引用到条目中(多对多)。问题是OrderStatus绑定到硬件,因此当一个硬件被引用到许多Employees并且Orderstatus被更改时,它将在所有条目上被更改。
我认为正确的解决方案是使用第三个表(Entry_Id,Hardware_Id,OrderStatus)。使用流畅的API,可以在新(第三)表中映射关系,但是无法向其添加新属性(OrderStatus)。这甚至可能吗?
答案 0 :(得分:2)
根据answer:
与a创建多对多关系是不可能的 定制连接表。在多对多关系中,EF管理着 在内部连接表并隐藏。这是一个没有Entity类的表 在你的模型中。使用附加的这种连接表 您必须创建两个一对多的属性 关系
有关详细信息,请参阅链接的答案。