我有一个Consumer类和一个BillableConsumer:Consumer类。当我尝试对我的“使用者”集进行任何操作时,我收到错误消息“无法找到具有标识Models.BillableConsumer的类型的对象映射。
来自CSDL:
<EntityType Name="BillableConsumer" BaseType="Models.Consumer">
<Property Type="String" Name="CardExpiratoin" Nullable="false" />
<Property Type="String" Name="CardNumber" Nullable="false" />
<Property Type="String" Name="City" Nullable="false" />
<Property Type="String" Name="Country" Nullable="false" />
<Property Type="String" Name="CVV" Nullable="false" />
<Property Type="String" Name="NameOnCard" Nullable="false" />
<Property Type="String" Name="PostalCode" Nullable="false" />
<Property Type="String" Name="State" />
<Property Type="String" Name="StreetAddress" Nullable="false" />
</EntityType>
来自C-S:
<EntitySetMapping Name="Consumers">
<EntityTypeMapping TypeName="IsTypeOf(Models.Consumer)">
<MappingFragment StoreEntitySet="consumer">
<ScalarProperty Name="LoginID" ColumnName="LoginID" />
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(Models.BillableConsumer)">
<MappingFragment StoreEntitySet="billinginformation">
<ScalarProperty Name="CardExpiratoin" ColumnName="CardExpiratoin" />
<ScalarProperty Name="CardNumber" ColumnName="CardNumber" />
<ScalarProperty Name="City" ColumnName="City" />
<ScalarProperty Name="Country" ColumnName="Country" />
<ScalarProperty Name="CVV" ColumnName="CVV" />
<ScalarProperty Name="LoginID" ColumnName="LoginID" />
<ScalarProperty Name="NameOnCard" ColumnName="NameOnCard" />
<ScalarProperty Name="PostalCode" ColumnName="PostalCode" />
<ScalarProperty Name="State" ColumnName="State" />
<ScalarProperty Name="StreetAddress" ColumnName="StreetAddress" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
这是因为我没有专门将BillableConsumer实体添加到对象集中吗?我如何在POCO场景中这样做?
答案 0 :(得分:1)
如果您在我的CSDL中注意到有一个名为“CardExpiratoin”的列(DB列名称中的拼写错误)。当然,我的手工编码的课程没有这个拼写错误。
我发现问题的方法是从T4模板生成POCO,看到它有效,并从那里回来。希望这可以帮助任何有同样问题的人。我也希望错误开始时更清楚。
答案 1 :(得分:1)
我也遇到了这个问题,在我的情况下,这也是因为POCO手写的错误。在大多数情况下,您会收到一条信息错误消息,但在某些极少数情况下,您会看到一些模糊的内容,例如“无法找到对象映射”。
在我的特定情况下,数据库中存在VARCHAR(1)类型的列,我错误地将其映射到char。我没有尝试char ?,但映射到字符串肯定解决了问题。