2010-03-12 93 views
2

我有一个Consumer类和一个BillableConsumer:Consumer类。当试图做我的“消费者”集合中的任何操作时,我得到错误信息“对象映射无法与身份Models.BillableConsumer类型中找到实体框架中的POCO实体的继承4

从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> 

从CS:

 <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方案

回答

1

如果你的NotI? ce在我的CSDL中有一个名为“CardExpiratoin”的列(DB列名中的拼写错误)。当然,我手写的课程没有这个拼写错误。

我发现问题的方式是通过从T4模板生成POCO,看到它工作,并从那里开始工作。希望这可以帮助任何有同样问题的人。我也希望这个错误开始时更清楚。

1

我也遇到过这个问题,在我的情况下也是因为手写POCO类错误。在大多数情况下,您会收到一条信息错误消息,但在极少数情况下,您会看到像'无法找到对象映射'这样的模糊内容。

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