Я использую Entity Framework и службы RIA. У меня проблема с отображениями и наследованием.
У меня есть (существующая) таблица с более чем 100 столбцами, назовите ее tblFacility, и я извлек ее в конструктор EF. Я хочу использовать как можно меньшую полосу пропускания, и в большинстве случаев мне нужны только два столбца: идентификатор и описание. Поэтому я добавил еще одну сущность, Facility, и сопоставил ее с tblFacility, а также сопоставил две колонки и установил идентификатор ключа. Затем я устанавливаю базовый класс сущности tblFacility в Facility.
Моя ошибка: Ошибка 3032: проблема с отображением фрагментов, начинающих строки .... Типы сущностей dbModel.tblFaclity, dbModel.Facility отображаются в те же строки в таблице tblMembers. Условия сопоставления можно использовать для различения строк, в которые отображаются эти типы.
В конструкторе есть Facility с двумя полями (одно ключ / 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>
На данный момент мой клиент нуждается только в Facility и не нуждается в tblFacility, но доменная служба действительно нуждается в классе tblFacility. Я хотел использовать этот базовый класс Facility в качестве IQueryable. Имеет ли это какой-то смысл, или я не совсем согласен с тем, как мне следует использовать EF?
Спасибо !!