见图片:
“具有不同键的两个实体被映射到同一行。确保这两个映射片段不会将具有重叠键的两组实体映射到同一组行。”
事实上,这两个(或6个)实体中只有一个拥有单行的密钥。
我怎么能克服这个? SQL视图将它们全部组合到一行? ContactMethod中的计算鉴别器列?我应该如何设计不同的表以便与EF更好地协作?
或者我是否可以做一些XML编辑来保留我的架构,并告诉EF相信我,我从来没有在同一个缺少的类中放置相同的Id?
这是:edmx如果它有帮助。
答案 0 :(得分:3)
指向edmx文件的链接不起作用。也许,你必须添加一个条件标签
<Condition ColumnName="ContactId" IsNull="false" />
使用xml-editor编辑你的edmx文件:
<AssociationSetMapping Name="FK_Contact_ContactMethod" TypeName="SomeNamespace.FK_Contact_ContactMethod" StoreEntitySet="ContactMethod">
<EndProperty Name="ContactMethod">
<ScalarProperty Name="ContactMethodId" ColumnName="ContactMethodId" />
</EndProperty>
<EndProperty Name="Contact">
<ScalarProperty Name="ContactId" ColumnName="ContactId" />
</EndProperty>
<Condition ColumnName="ContactId" IsNull="false" />
</AssociationSetMapping>
答案 1 :(得分:0)
在数据库中取消外键到ContactMethod可以消除错误,但看起来不对。