假设我在表格Customers
和Trucks
之间存在多对多关系。它们由表CustomersTrucks
加入。
现在我想向Customers
添加一列。但是,该列特定于与卡车相关联的客户,而不是与其他表关联的客户,例如Vans
。
因此,我可能会得出结论,将此新列添加到CustomerTrucks
而不是Customers
会更有意义。这样,我就不会向Customers
表中添加在某些情况下未使用的数据。
但是,如果我将新列添加到连接表中,那对实体模型有什么作用?通常,我希望Customers
实体具有名为Trucks
的集合属性。那么如何对连接表中的新列进行建模?
答案 0 :(得分:0)
如果你有正常的联结表只有两列(互连表的FK),你不会将这样的表用作实体,因为EF可以隐藏它并直接处理多对多关系。
一旦你将任何额外的列添加到联结表,它不再是联结表,并且从EF透视图中它不再是多对多表(我不确定它是否仍然是多对多的数据库术语)。您的CustomersTrucs
成为完整实体,其自身数据必须在应用程序中设置。
如您所述,您的新属性不属于Customers
表,因此它也不属于Customer
实体 - 您的模型中需要CustomersTruck
个实体实体将具有两个一对多关系(一个到Customer
,一个到Truck
)。因此,Customer
以及Truck
现在将具有导航属性CustomersTrucks
。