2009-12-21 10 views
15

Ich bin Gerät testen eine Methode, die Autoapper verwendet, um eine Klasse aus meiner Domäne zu einer Linq zu SQL-Klasse zuzuordnen. Grob sind die Klassen und die Zuordnung unten (Die SupplierEligibilityAllocated ist eine automatisch generierte L2S-Klasse).Eine Ausnahme mit AutoMapper erhalten

Wenn die Methode das Mapping ausführt, wird jedoch die folgende Ausnahme ausgelöst.

Trying to map SupplierEligibilityTransactionByQuantity to SupplierEligibilityAllocated. 
Missing type map configuration or unsupported mapping. 
Exception of type 'AutoMapper.AutoMapperMappingException' was thrown. 

at AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context) 
at AutoMapper.MappingEngine.Map(Object source, Type sourceType, Type destinationType) 
at AutoMapper.MappingEngine.Map[TSource,TDestination](TSource source) 
at AutoMapper.Mapper.Map[TSource,TDestination](TSource source) 

ich festgestellt, dass ich die Zuordnung vor dem Test bin die Schaffung und ich rief Mapper.AssertConfigurationIsValid() ohne Probleme. Ich habe das Mapping auch ohne Probleme manuell durchgeführt. Hat jemand eine Idee, was das verursachen könnte?

+0

für any1 gibt es immer die Möglichkeit, u den IgnoreDataMember attr gesetzt, und das bedeutet, dass außerhalb ur Klasse u es nicht sehen kann, das war mein Problem mit diesem ex – bresleveloper

Antwort

9

Es scheint, Sie die falsche Art auf Ihren Anruf angeben zu Mapper.CreateMap

Versuchen Sie so etwas wie die folgenden Aktionen ausführen:

Mapper.CreateMap<SupplierEligibilityTransactionByQuantity, SupplierEligibilityAllocated>() 
+0

Doh, übersah ich das Offensichtliche. Ich habe den falschen Typ zugeordnet, was die Ausnahme erklärt und warum AssertConfigurationIsValid() kein Problem hatte. – JChristian

0

Wenn einer Mapper.Map() überprüfen Sie Ihre Mapping-Klasse & Tabelle/Speicher-Prozedur richtig .

public static CustomerLedgerViewModel ToModel(this DJBL_tblCustomerCurrentLedger obj) 
{ 
    return Mapper.Map<DJBL_tblCustomerCurrentLedger, CustomerLedgerViewModel>(obj); 
} 

public static DJBL_tblCustomerCurrentLedger ToEntity(this CustomerLedgerViewModel model) 
{ 
    return Mapper.Map<CustomerLedgerViewModel, DJBL_tblCustomerCurrentLedger>(model); 
}