我的项目中有一个数据库第一个模型。从数据库导入3个表Document
,DocumentItem
和Product
。
我想创建一个名为Order
的新实体,它连接这三个数据库表的某些字段。我在第一张图片中看到了你创建的实体,并按照你在第二张图片中看到的那样填充了它的表格映射。
在项目构建之后,我得到以下错误:
Severity Code Description Project File Line Suppression State
Error Error 3025: Problem in mapping fragments starting at line 193:Must specify mapping for all key properties (Product.Id) of table Product. EFTest C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx 194
Error Error 3025: Problem in mapping fragments starting at line 186:Must specify mapping for all key properties (Document.Id) of table Document. EFTest C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx 187
Error Error 3024: Problem in mapping fragments starting at line 193:Must specify mapping for all key properties (Orders.Id) of the EntitySet Orders. EFTest C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx 194
Error Error 3024: Problem in mapping fragments starting at line 186:Must specify mapping for all key properties (Orders.Id) of the EntitySet Orders. EFTest C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx 187
我找不到问题的根源。我该如何解决这些错误?
答案 0 :(得分:0)
错误告诉 你的项目中缺少一个外键!
考虑到您知道您不能简单地将数据库中的表添加到模型中,然后在模型中创建新关联。默认情况下,它使用独立关联,必须映射到其数据库对应关系(例如,关系也必须存在于数据库中)。您必须将关系建模为FK
关联,但它只允许一对一和一对多关联。 换句话说,当您在EF4中选中“在模型中包含外键列”添加新表并且该表不包含任何外键关系时,您尝试添加一个关联触发此错误。解决方案是Define Constraints in an EF4 model that don’t exist in the database.
有时我们会遇到不必要的冲突,如果您可以从EF设计器中删除该表并且还手动删除与该表相关的所有内容(在XML文件中),则会导致此类问题,然后再次添加表并放置正确的映射试。