如何将一个自定义实体映射到实体框架中的某些数据库表?

Bob*_*obs 8 entity entity-framework

我的项目中有一个数据库第一个模型.3个表Document,DocumentItemProduct从数据库导入. 在此输入图像描述 我想创建一个名为Orderjoin 的新实体,它连接这三个数据库表的某些字段.我在第一张图片中看到了你创建的实体,并按照你在第二张图片中看到的那样填充了它的表格映射. 在此输入图像描述 在构建项目后,我收到以下错误:

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 
Run Code Online (Sandbox Code Playgroud)

我找不到问题的根源.我该如何解决这些错误?

Ami*_*rzi 0

该错误表明您的项目中缺少外键!

\n\n

考虑到您知道您不能简单地将数据库中的表添加到模型中,然后在模型中创建新的关联。默认情况下,它使用独立关联,该关联必须映射到其数据库对应项(例如,关系也必须存在于数据库中)。您必须将关系建模为FK关联,但它仅允许一对一一对多关联。换句话说,当您添加一个在 EF4 中选中“在模型中包含外键列”的新表并且该表不包含任何外键关系时,您尝试添加关联时将会触发此错误。解决方案是在数据库中不存在\xe2\x80\x99t 的 EF4 模型中定义约束。

\n\n

有时我们会遇到不必要的冲突,当您可以从 EF 设计器中删除表并手动删除与该表相关的所有内容(在 XML 文件中),然后再次添加该表并再次放置正确的映射时,可能会导致此类问题。

\n