实体框架如何从连接表中建模数据?

时间:2011-07-09 04:51:41

标签: sql entity-framework

假设我在表格CustomersTrucks之间存在多对多关系。它们由表CustomersTrucks加入。

现在我想向Customers添加一列。但是,该列特定于与卡车相关联的客户,而不是与其他表关联的客户,例如Vans

因此,我可能会得出结论,将此新列添加到CustomerTrucks而不是Customers会更有意义。这样,我就不会向Customers表中添加在某些情况下未使用的数据。

但是,如果我将新列添加到连接表中,那对实体模型有什么作用?通常,我希望Customers实体具有名为Trucks的集合属性。那么如何对连接表中的新列进行建模?

1 个答案:

答案 0 :(得分:0)

如果你有正常的联结表只有两列(互连表的FK),你不会将这样的表用作实体,因为EF可以隐藏它并直接处理多对多关系。

一旦你将任何额外的列添加到联结表,它不再是联结表,并且从EF透视图中它不再是多对多表(我不确定它是否仍然是多对多的数据库术语)。您的CustomersTrucs成为完整实体,其自身数据必须在应用程序中设置。

如您所述,您的新属性不属于Customers表,因此它也不属于Customer实体 - 您的模型中需要CustomersTruck个实体实体将具有两个一对多关系(一个到Customer,一个到Truck)。因此,Customer以及Truck现在将具有导航属性CustomersTrucks