2010-03-12 4 views
2

저는 Consumer 클래스와 BillableConsumer : Consumer 클래스가 있습니다. 내 "소비자"세트에 모든 작업을하려고 할 때, 나는 오류 메시지 "개체 매핑이 신원 Models.BillableConsumer와 유형에 대한 찾을 수 없습니다 얻을 CSDL에서Entity Framework 4의 POCO 엔터티를 통한 상속

:. 보내는 사람

<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 : 내가 특별히 내가 POCO 시나리오에서

답변

1

당신을 NotI 경우 그렇게 어떻게 객체 세트에 BillableConsumer 엔티티를 추가하지 않았기 때문에

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

입니다 CSDL에는 "CardExpiratoin"(DB 컬럼 이름의 맞춤법 오류) 열이 있습니다. 물론 수작업으로 코딩 된 클래스에는 맞춤법 오류가 없습니다.

내가 발견 한 문제는 T4 템플릿에서 POCO를 생성하여 작동하는 것을보고 거기에서 돌아 오는 길입니다. 희망이 동일한 문제가있는 사람을 도와줍니다. 나는 또한 오류가 조금 더 명확 해지기를 바란다.

1

필자도이 문제를 겪고 있었고, 제 경우에는 POCO 클래스를 작성한 손에 오류가 있기도했습니다. 대부분의 경우 정보 오류 메시지가 표시되지만 드문 경우이지만 '개체 매핑을 찾을 수 없습니다.'와 같이 막연한 결과가 발생합니다.

필자의 경우 데이터베이스에 VARCHAR (1) 유형의 열이 있는데,이 열은 잘못 char에 매핑되었습니다. 나는 char를 시도하지 않았지만 문자열에 매핑하면 문제가 확실히 해결되었습니다.

관련 문제