2010-03-12 96 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。我沒有嘗試字符?,但映射到字符串肯定解決了這個問題。