我正在使用EF 4.1开发MVC应用程序。 我使用TPH approch来生成数据库。
我有两个实体,1。公司和2. Lead,Lead继承自公司。
请查看下图:
现在我有了以下的mappaings ......
这里是带XML的edmx文件
<EntitySetMapping Name="Companies">
<EntityTypeMapping TypeName="IsTypeOf(Model1.Company)">
<MappingFragment StoreEntitySet="Companies">
<ScalarProperty Name="Id" ColumnName="Id" />
<ScalarProperty Name="Name" ColumnName="Name" />
<Condition ColumnName="__Disc__" Value="Company" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="Model1.Lead">
<MappingFragment StoreEntitySet="Companies">
// Gives Error -> <ScalarProperty Name="Id" ColumnName="Id" />
// Gives Error -> <ScalarProperty Name="Name" ColumnName="Name" />
// Gives Error -> <ScalarProperty Name="Status" ColumnName="Status" />
<Condition ColumnName="__Disc__" Value="Lead" />
</MappingFragment>
</EntityTypeMapping>
错误3034:从第47,54行开始映射片段时出现问题:实体映射到同一个表中的不同行。确保这两个映射片段不会将具有相同键的两组实体映射到两个不同的行组。
答案 0 :(得分:0)
解决了问题。 从edmx中的基本实体中删除了discriminimitor属性。