2017-02-09 2 views
0

Ich glaube, ich die Ursache des Problems gefunden, aber ich weiß nicht, wie es zu lösen, die Szene wie folgt aus:AutoMapper 5, wenn Satz CreateMissingTypeMaps wahr ForMember arbeiten nicht

i verwendet AutoMapper 5.2 Entity Rahmen 6 und verwenden CreateMissingTypeMaps=true meinen CreateMap Code zu speichern, und ich habe auch spezielle Karte, so Code initialisieren wie dieser

Mapper.Initialize(
      a => 
       { 
        a.CreateMissingTypeMaps = true; 
        a.CreateMap<query_template, QtGridUdfSearchTemplate>() 
       .ForMember(dest => dest.GridId, opt => opt.MapFrom(src => src.GRID_ID)) 
       .ForMember(dest => dest.Guid, opt => opt.MapFrom(src => src.QUERY_TEMPLATE_GUID)) 
       .ForMember(dest => dest.TemplateName, opt => opt.MapFrom(src => src.TEMPLATE_NAME)) 
       .ForMember(dest => dest.CreatedBy, opt => opt.MapFrom(src => src.CREATED_BY)) 
       .ForMember(dest => dest.IsDefault, opt => opt.MapFrom(src => src.IS_DEFAULT)) 
       .ForMember(dest => dest.IsOffset, opt => opt.MapFrom(src => src.IS_OFFSET)); 
       } 
     ); 

und Kartencode

var source = DbContext.Set<query_template>().Find(keyValue); 
var dest = Mapper.Map<query_template, QtGridUdfSearchTemplate>(source); 

Ich bekomme die dest alle Attribut ist null, wenn ich a.CreateMissingTypeMaps = true; in Initialize entfernen, ist es Arbeit, die dest alles Attribut kann Karte sein.

dann fand ich die source Typ System.Data.Entity.DynamicProxies.query_template_80DE6B32EB08D5DFDD560580BB004DAD6A7FF27B94A3517A6BB4044B01FB8272 ist, so denke ich, wenn ich CreateMissingTypeMaps gesetzt, mein AutoMapper Auto eine Karte erstellen, nicht erstellen

viele Beiträge context.Configuration.ProxyCreationEnabled = false; vorgeschlagen, aber ich LazyLoad verwenden. und ich möchte CreateMissingTypeMaps nicht entfernen, da ich viele normale Typen zuordnen muss.

kann mir jemand helfen?

Antwort

0

Statt ForMember(...) des Setzens, versuchen:

ForMember<ObjectThatYouWantMap>(*Expression*); 
+0

Dank Jorge, ist es nicht für mich arbeiten, ich frage auch in GitHub, https://github.com/AutoMapper/AutoMapper/issues/1954, dass bedeutet Verwenden Sie CreateMissingTypeMaps nicht, wenn Sie die Typen zur Laufzeit nicht kennen – Gavin

Verwandte Themen