9

我正在尝试在实体框架中使用一对一(主,详细)关系,但是,我收到此错误:

从第 254、443 行开始映射片段时出现问题:从表 options_Advanced (ProductID) 到表产品 (catalogid) 的外键约束“options_Advanced_FK00”:: 映射不足:必须将外键映射到参与外键关联的某些 AssociationSet 或 EntitySet在概念方面

这是设计器中的关联:

在此处输入图像描述

它说产品-> 0..1 options_Advanced

我使用模型优先而不是代码优先。我的选项高级表有一个产品与每条记录相关联

产品

  • ID
  • 目录编号
  • 姓名

选项_高级

  • ID
  • 产品编号
  • 姓名
4

7 回答 7

7

在我正在研究的系统中寻找相同问题的解决方案时,我遇到了这个问题。

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

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

现在,当您添加一个新表时会发生什么我不确定,因为我还没有必须这样做,因为我正在使用我们希望转换的旧应用程序

于 2013-12-13T11:58:27.297 回答
3

向我的 edmx 添加新表后,我也遇到了这个问题。对我来说不幸的是,损坏的外键也随之而来。

首先,我尝试通过删除并重新添加新添加的表来修复它。那没有用。

然后,在阅读了这篇关于 EF 黑暗面的文章后,我最终选择了第二种解决方案并手动修复了 XML 文件。我通过手动删除任何外键并删除关联来做到这一点。

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

有一件事是肯定的,如果您需要快速获胜,就是这样。

希望我有所帮助。

于 2015-06-09T10:37:35.667 回答
1

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

于 2013-06-20T13:42:50.170 回答
0

我知道我正在恢复一个旧帖子,但我发现了一个不同的解决方案来解决这个错误。

当我收到此错误时,我正在修改现有实体模型以将具有外键约束的新表包含到主表中。原来,在数据库中,我并没有设置主表和新增表之间的外键关系。哎呀。

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

于 2015-03-11T19:15:05.980 回答
0

我收到此错误,问题只是一个表中的 FK 列未映射到实体的表映射中(设计器 db-first)。

于 2020-07-14T11:55:49.180 回答
0

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

于 2017-12-01T02:09:50.317 回答
0

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

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

在包管理器控制台中按顺序运行以下命令:

添加迁移-IgnoreChanges

(出现提示时给它任何名称)

更新数据库

于 2018-12-01T02:25:26.500 回答