2010-03-12 7 views
2

J'ai une classe de consommateurs et BillableConsumer: classe de consommateurs. Lorsque vous essayez de faire une opération sur mon « consommateurs » ensemble, je reçois le message d'erreur « mapping objet n'a pas été trouvé pour le type avec Models.BillableConsumer identitéhéritage avec des entités POCO dans Entity Framework 4

De la 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> 

De la 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> 

Est-ce parce que je n'ai pas ajouté spécifiquement l'entité BillableConsumer à l'ensemble d'objets Comment puis-je faire cela dans un scénario POCO

Répondre

1

Si vous noti? ce dans mon CSDL il y a une colonne appelée "CardExpiratoin" (faute d'orthographe dans le nom de colonne de DB). Bien sûr, ma classe codée à la main n'avait pas cette faute d'orthographe.

La façon dont je trouve le problème est en générant Poços à partir du modèle T4, voir cela a fonctionné, et de travailler mon chemin de retour à partir de là. J'espère que cela aide tous ceux qui ont le même problème. Je souhaite également que l'erreur soit un peu plus claire pour commencer.

1

j'éprouvais ce problème aussi bien, et dans mon cas, il était aussi à cause d'une erreur dans une classe POCO écrite à la main. Dans la plupart des cas, vous obtenez des messages d'erreur d'information, mais comme il semble que dans de rares cas, vous obtenez quelque chose de vague comme "Impossible de trouver le mappage d'objet".

Dans mon cas, il y avait des colonnes de type VARCHAR (1) dans la base de données, que je char mal cartographié. Je n'ai pas essayé le char ?, mais le mappage à la chaîne a certainement résolu le problème.

Questions connexes