Asp.net mvc 实体框架-语法行为

Asp.net mvc 实体框架-语法行为,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我有3张最简单的桌子: 以及它们之间的关系: 如果我从零开始创建新项目并创建实体模型(从DB),我将收到正确的EF模型: 但是当我尝试对我的真实项目做同样的事情时,创建的EF模型非常奇怪 如我们所见,它创建了一个新实体“SectionSite”,与Site有关系,与Section没有关系。发生的原因和修复方法?使用Entity Framework,您不必创建映射表 如果您让您的节引用多个站点(ICollection)并让您的站点引用多个节(ICollection),Entity Fram

我有3张最简单的桌子:

以及它们之间的关系:

如果我从零开始创建新项目并创建实体模型(从DB),我将收到正确的EF模型:

但是当我尝试对我的真实项目做同样的事情时,创建的EF模型非常奇怪


如我们所见,它创建了一个新实体“SectionSite”,与Site有关系,与Section没有关系。发生的原因和修复方法?

使用Entity Framework,您不必创建映射表


如果您让您的节引用多个站点(ICollection)并让您的站点引用多个节(ICollection),Entity Framework将为您创建一个SectionSite或SiteSection表。

如果您在节和SectionSite表中添加内容而不添加站点表,则我能够复制此内容。这将创建以下链接的链接

要解决此身份不匹配的问题,您可以:

  • 同时删除并重新添加站点、节和节站点
  • 右键单击站点和SectionSite之间的“添加新关联”,取消选中“将外键属性添加到“Section”实体”
  • 然后,您需要选择创建的关系,属性->引用约束和更新以满足您的FK关系
  • 一旦您满意了,右键单击并验证您的模型,它现在应该可以工作了吗

  • 你是如何增加你的新关系的?它是手动添加的还是通过“从数据库更新模型”?复制EF 6.0中的表设计,我似乎没有同样的问题,它很高兴地在导航属性中添加了“从数据库更新模型”。正如您所看到的,我尝试为两个项目都这么做——我的真实项目和空测试项目。空的测试项目正确地创建了DB模型,实际项目-否用于相同的操作:(当更新模型时选中“在模型中包含外键列”时,两个项目是否针对相同的连接?我不使用“代码优先”方法,而是使用“从数据库更新模型”