2017-02-09 13 views
0

Я думаю, что я нашел причину этой проблемы, но я не знаю, как решить эту проблему, сцена выглядит так:AutoMapper 5, когда набор CreateMissingTypeMaps правда ForMember не работает

я использовал automapper 5,2, Entity рамки 6 и использовать CreateMissingTypeMaps=true, чтобы сохранить мой CreateMap код и я также специальную карту, поэтому Инициализировать код, как этот

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)); 
       } 
     ); 

и карта кода

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

i get dest все атрибуты равны нулю, когда я удаляю a.CreateMissingTypeMaps = true; в Initialize, это работа, dest все атрибуты могут быть картой.

тогда я нашел source типа является System.Data.Entity.DynamicProxies.query_template_80DE6B32EB08D5DFDD560580BB004DAD6A7FF27B94A3517A6BB4044B01FB8272, поэтому я думаю, что, когда я установил CreateMissingTypeMaps, autoMapper авто создать карту, а не мои создания

много сообщений предложило context.Configuration.ProxyCreationEnabled = false; но я использую LazyLoad. и не нужно удалять CreateMissingTypeMaps, потому что у меня есть много нормального типа для отображения.

Кто-нибудь может мне помочь?

ответ

0

Вместо того, чтобы ForMember(...), попробуйте:

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

благодаря Jorge, он не работает для меня, я также прошу в GitHub, https://github.com/AutoMapper/AutoMapper/issues/1954, что Не используйте CreateMissingTypeMaps, если вы не знаете типы во время выполнения – Gavin