Entity framework 外键必须映射到参与概念侧外键关联的某些AssociationSet或EntitySet

Entity framework 外键必须映射到参与概念侧外键关联的某些AssociationSet或EntitySet,entity-framework,Entity Framework,我试图在实体框架中使用一对一(主,细节)关系,但是,我遇到了以下错误: 从第254行、第443行开始的片段映射问题:外键约束“options\u Advanced\u FK00”从表options\u Advanced(ProductID)映射到表products(catalogid)::映射不足:外键必须映射到某些AssociationSet或EntitySet,它们在概念方面参与外键关联 以下是设计器中的关联: 它显示产品-->0..1选项\u高级 我首先使用模型,而不是代码。“我的选项高

我试图在实体框架中使用一对一(主,细节)关系,但是,我遇到了以下错误:

从第254行、第443行开始的片段映射问题:外键约束“options\u Advanced\u FK00”从表options\u Advanced(ProductID)映射到表products(catalogid)::映射不足:外键必须映射到某些AssociationSet或EntitySet,它们在概念方面参与外键关联

以下是设计器中的关联:

它显示产品-->0..1选项\u高级

我首先使用模型,而不是代码。“我的选项高级”表中的每个记录都有一个关联的产品

产品

  • 身份证
  • 目录ID
  • 名字
高级选项

  • 身份证
  • 产品ID
  • 名字

我从.net 3.5切换到了.net 4,解决了这个问题。

我在一个我正在工作的系统中搜索同一问题的解决方案时遇到了这个问题

我在VS2010中遇到过这种情况,当您像我一样从数据库生成模型时,这种情况似乎会发生,而您没有;不要同时包含对象。i、 e包括一张桌子而不是另一张桌子

在这一点上,我通过删除模型,然后重新创建整个模型,包括模型中我认为可能需要的每个表来解决这个问题


现在,当您添加一个新表时会发生什么情况我不确定,因为我还没有这样做,因为我正在使用一个我们希望转换的旧应用程序,我知道我正在恢复一篇旧文章,但我发现这个错误的解决方法有所不同

当我收到此错误时,我正在修改现有的实体模型,以便将带有外键约束的新表包含到主表中。结果是,在数据库中,我没有设置主表和新添加表之间的外键关系。哎呀


在数据库中设置了这些关系之后,我撤销了在模型中所做的所有编辑。从一个已知的好模型开始,我选择了“从数据库更新模型”,得到了我期望的模型,没有错误。

在向edmx添加新表后,我也遇到了这个问题。不幸的是,损坏的外键也出现了

首先,我试图通过删除并重新添加新添加的表来修复它。那是行不通的

然后,在阅读了本文之后,我选择了第二种解决方案,并手动修复了XML文件。我通过手动删除所有外键和关联来实现

诚然,这个解决方案远非完美,每次我更新我的edmx时,我都必须重新应用该解决方案。然而,由于我已经不得不为其他表和其他问题(遗留代码问题)做这项工作,所以我真的不介意

有一点是肯定的,如果你需要一个快速的胜利,这就是它


希望我能帮上忙

当我将外键从指向一个表改为指向另一个表时,我遇到了这个问题。导航属性已清理,但仍有对隐藏在edmx中的旧关系的引用。我编辑了XML并手动删除了对旧关系的两个引用。

我在更改数据库或代码中的字段属性和关系时遇到了这个问题。您可以通过从数据库更新来进行同步,但这有时不起作用,因此会出现此错误

解决方案是创建并触发迁移,然后更新数据库

在Package Manager控制台中,按顺序运行以下命令:

添加迁移-忽略更改

(提示时为其指定任何名称)


更新数据库

我遇到了这个错误,问题是一个表中的FK列在实体的表映射中没有映射到(designer db first)。

尝试一件事:从上下文菜单中单击“从模型生成数据库”,然后单击“完成”(在两个用户提示下按OK)。返回此映射窗口,检查是否与上面的快照中的相同。我收到另一个错误,即product_catalogid不是有效列。