Сопоставить метод с полем с помощью Automapper - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу использовать Automapper и мне нужно сопоставить метод с полем (например, с командной частью). Как я могу это сделать? Это мой первый код


     foreach(source item in sources)
      {

     ss.ServerStatusType = ServerStatusTypeName(item);
     ss.A = item.A ;
     ss.B =item.B;
     destinations.Add(dto);
}

Я хочу использовать Automapper, и у меня просто возникла проблема с методом ServerStatusTypeName


 var config = new MapperConfiguration(cfg =>   
     cfg.CreateMap<IList<source >, IList<Destination>>());

IList<Source> statuses = context.Sp_ServerUpdateStatus(userName).ToList();

            var mapper = new Mapper(config);
            IList<Source> dto = mapper.Map<IList<Destination>>(statuses);

Все в порядке, просто ss.ServerStatusType имеет значение null, потому что я использую метод для заполнения этого элемента

Ответы [ 2 ]

0 голосов
/ 01 марта 2020

Я использую этот код, и он в порядке

 CreateMap<Sp_ServerUpdateStatus_Result, ServerStatus>()
            .ForMember(dest=>dest.ServerStatusType, opt => opt.MapFrom(src=> ServerStatusTypeName(src))
                );

... ServerStatusTypeName (sr c) - это метод

0 голосов
/ 24 февраля 2020

Вы можете попробовать

class YourObjectProfile : Profile
    {
        public YourObjectProfile()
        {
            CreateMap<UI_Object, Domain_Object>()
                .ForMember(c => c.name, p => p.MapFrom(dbc => dbc.name));

            CreateMap<Domain_Object, UI_Object>()
                .ForMember(dbc => dbc.name, dbp => dbp.MapFrom(c => c.name));
        }   
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...