我在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文件的屏幕截图:
这是我的edmx文件的pastbin
至于代码不想在这里发布它。
答案 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>