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