首页 文章

外键必须映射到概念方面参与外键关联的某些AssociationSet或EntitySets

提问于
浏览
9

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

Problem in mapping fragments starting at lines 254, 443:Foreign key constraint 'options_Advanced_FK00' from table options_Advanced (ProductID) to table products (catalogid):: Insufficient mapping: Foreign key must be mapped to some AssociationSet or EntitySets participating in a foreign key association on the conceptual side

这是设计师中的关联:

enter image description here

它说产品 - > 0..1 options_Advanced

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

制品

  • ID

  • CatalogID

  • 姓名

Options_Advanced

  • ID

  • ProductID

  • 姓名

6 回答

  • 0

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

  • 1

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

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

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

    Add-Migration -IgnoreChanges

    (提示时给它任何名字)

    Update-database

  • 0

    在我正在研究的系统中搜索同一问题的解决方案时,我遇到了这个问题 .

    我在VS2010中遇到过这种情况,当你从数据库中生成模型时,它似乎就像我一样,并且你不同时包含这些对象 . 即包括一张桌而不包括另一张桌 .

    此时我通过删除模型然后重新创建整个模型并在模型中包含我认为可能需要的每个表来解决它 .

    现在当你添加一个新表时会发生什么我不确定,因为我正在使用我们希望转换的旧应用程序

  • 3

    在我的edmx中添加新表后,我也遇到了这个问题 . 对我来说不幸的是,损坏的外键也出现了 .

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

    然后,在阅读了本文about the dark side of EF之后,我最终选择了第二个解决方案并手动修复XML文件 . 我通过手动删除任何外键并删除关联来完成它 .

    不可否认,这个解决方案远非完美,每次我更新我的edmx时我都必须重新应用解决方案 . 但是,因为我已经不得不为其他表和其他问题(遗留代码问题)做这件事,这是我真的不介意的努力 .

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

    希望我帮了 .

  • 7

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

  • 0

    我知道我正在复活一个旧帖子,但我发现这个错误还有一个不同的解决方案 .

    当我收到此错误时,我正在修改现有的实体模型,以包含具有外键约束的新表到主表 . 事实证明,在数据库中,我没有在主表和新添加的表之间设置外键关系 . 哎呦 .

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

相关问题