为什么实体数据模型向导不能用于许多相关表?

时间:2011-02-14 11:40:36

标签: entity-framework entity-framework-4

我有3个表的数据库如下:

enter image description here

在Visual Web Developer 2010 Express中,我使用实体数据模型向导创建EF模型。我选择了3个表。不幸的是,生成的EF模型不包含联结表,即QuestionsTags表。下图显示了EF模型图。

enter image description here

我的问题:为什么实体数据模型向导不能用于许多相关的表?

2 个答案:

答案 0 :(得分:2)

有效。请注意EF模型图底部的导航属性。

QuestionsTags表仅用于建模关系数据库中的多对多关系。当您拥有不必适合刚性表模式的对象时,可以使用问题对象上的集合来获取该问题上的所有标记,同样,还可以使用标记对象上的集合来获取所有问题。该标签......实体框架为您建模并自动填充这些集合。

答案 1 :(得分:2)

这是物理模型和概念模型之间的区别。在物理模型中,您使用能够定义M:N关系的联结,因为关系数据库本身不支持它。在概念模型中,您不处理物理存储。连接表不包含在概念模型中,因为它不是必需的。您无需访问它,您需要访问与标签相关的问题或问题相关的标签。这些关系可以通过导航属性直接访问。

仅当连接表包含其他列(不仅是用于构建M:N关系的FK)时,连接表才会自动添加到模型中。也可以手动修改(EF4)模型并强制它为连接表添加实体。