实体框架映射问题

时间:2014-08-07 08:31:25

标签: entity-framework asp.net-mvc-4

我在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

至于代码不想在这里发布它。

1 个答案:

答案 0 :(得分:6)

遇到同样的问题,我找到了解决方案here。 简而言之,你应该:

  

修复此重复映射问题需要引用约束,   设计师只会在下一个版本中支持,所以保存   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>