我正在使用实体框架和ria服务。我遇到了映射和继承问题。 我有一个拥有100列以上的(现有)表格,称之为tblFacility,然后将它拖入EF设计器中。我希望使用尽可能少的带宽,在大多数情况下,我只需要两列,一个ID和一个描述。因此,我添加了另一个实体Facility,并将其映射到tblFacility,并将两个列映射到其中,并将其设置为ID。然后,我将实体tblFacility的基类设置为Facility。EF继承/基类问题
我的错误是错误3032:映射片段起始行中出现问题....实体类型dbModel.tblFaclity,dbModel.Facility被映射到表tblMembers中的相同行。映射条件可用于区分这些类型映射到的行。
设计师有两个字段(一个键/ ID,一个描述)设施和tblFacility缺少两列我刚才提到的,它看起来正确的。 的EDMX文件看起来像这样我在哪里得到的错误
<EntitySetMapping Name="Facilities">
<EntityTypeMapping TypeName="IsTypeOf(dbModel.Facility)">
<MappingFragment StoreEntitySet="tblFacility">
<ScalarProperty Name="Number" ColumnName="intFaclNbr" />
<ScalarProperty Name="Name" ColumnName="vcFaclName" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs" TypeName="HSCAMasterModel.tblMember">
<MappingFragment StoreEntitySet=" tblFacility">
<ScalarProperty Name="Number" ColumnName="intFaclNbr" /> <ScalarProperty Name="vcAddr1" ColumnName="vcAddr1" />
<!--...over 100 more columns, name is not one of them...-->
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
在这一点上我只需要客户端设备,也不需要tblFacility,但域服务不确实需要tblFacility类。我想用这个Facility基类作为IQueryable这是否有意义,或者我的方式与我应该如何使用EF基础? 谢谢!
谢谢,这些都是可以接受的解决方案! – zBomb