Asp.net 实体框架4中POCO实体的继承

Asp.net 实体框架4中POCO实体的继承,asp.net,entity-framework,asp.net-mvc-2,Asp.net,Entity Framework,Asp.net Mvc 2,我有一个Consumer类和一个BillableConsumer:Consumer类。在尝试对我的“使用者”集执行任何操作时,我收到错误消息“找不到具有标识模型的类型的对象映射。BillableConsumer” CSDL: <EntityType Name="BillableConsumer" BaseType="Models.Consumer"> <Property Type="String" Name="CardExpiratoin" Nullable

我有一个Consumer类和一个BillableConsumer:Consumer类。在尝试对我的“使用者”集执行任何操作时,我收到错误消息“找不到具有标识模型的类型的对象映射。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场景中我该怎么做?

如果您注意到我的CSDL中有一个名为“CardExpiratoin”的列(DB列名中的拼写错误)。当然,我手工编码的类没有这个拼写错误


我发现问题的方法是从T4模板生成POCO,看到它工作,然后从那里返回。希望这能帮助有相同问题的人。我也希望错误一开始就更清楚一点。

我也遇到了这个问题,在我的情况下,这也是因为手写POCO c中的一个错误在大多数情况下,您会收到一条信息性错误消息,但在一些罕见的情况下,您会收到一些模糊的消息,如“找不到对象映射”

在我的特殊情况下,数据库中有VARCHAR(1)类型的列,我错误地将其映射到char。我没有尝试char?,但映射到string肯定解决了问题