Entityframework映射问题

6

我正在使用MVC上的实体框架,但是我在使用以下方法时遇到了问题。我只是在进行下面的反射方法,不明白为什么会出现字段映射错误。

这里提到的字段也会出现以下错误:

错误:-

Error   13  Error 3021: Problem in mapping fragments starting at line 205:Each of the following   
columns in table FormBuilder_Form_Fields is mapped to multiple conceptual side properties:
FormBuilder_Form_Fields.ID is mapped to <FormFieldsForm.Form.ID, FormFieldsForm.FormFields.ID>
 C:\NewDevelopment\CaseddimensionsCMS\CaseddimensionsCMS\CaseddimensionsCms.edmx    206 11  CaseddimensionsCMS

Error   14  Error 3021: Problem in mapping fragments starting at line 228:Each of the following columns in table FormBuilder_field_values is mapped to multiple conceptual side properties:
FormBuilder_field_values.ID is mapped to <FormFieldValues.FieldValues.ID, FormFieldValues.Form.ID>

我对实体框架还不是很了解,所以不太清楚这意味着什么。
我在布局设计器中包含了一个edmx文件的截图: pic 这是我的edmx文件的pastbin链接: http://pastebin.com/GeL6mZd4 由于代码过长,我不想在此处发布。

将图像放在帖子中的方法是什么,因为我的声誉低于十分,所以我可以在将来知道。 - c-sharp-and-swiftui-devni
1个回答

8

我发现了同样的问题并找到了解决方案(这里)

简单来说,你需要:

修复重复映射问题需要一个引用约束条件,而设计师只会在下一个版本中支持,因此请保存edmx文件,关闭它,然后在“解决方案资源管理器”中右键单击它,选择“打开方式...”,再双击“XML编辑器”。

在CSDL部分,您将看到ProductProductImages关联:

更新您的关联如下:

<Association Name="FormsFormsFields">
  <End Type="TableSplittingModel.Forms" Role="Form" Multiplicity="1" />
  <End Type="TableSplittingModel.FormFields" Role="FormFields" Multiplicity="1" />
</Association>

通过添加ReferentialConstraint来实现。
<Association Name="FormsFormFields">
  <End Type="TableSplittingModel.Forms" Role="Forms" Multiplicity="1" />
  <End Type="TableSplittingModel.FormFields" Role="FormFields" Multiplicity="1" />
  <ReferentialConstraint>
    <Principal Role="Forms"><PropertyRef Name="id"/></Principal>
    <Dependent Role="FormFields"><PropertyRef Name="id"/></Dependent>
  </ReferentialConstraint>
</Association>

1
通过右键单击关联的方式,在 VS2012 中修复了相同的问题,“在模型浏览器中显示”,然后在属性窗口中添加一个新的引用约束。 - Jeremy Murray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接