Настраиваемое значение карты Automapper ForMember - PullRequest
1 голос
/ 24 октября 2019

Я использую automapper 8.1.1

Как назначить значение для элемента назначения, но не из источника.

У меня есть этот код`

    public IEnumerable<PartsTreeVM> GetMainPartsCategories(int type)
    {
        var model = _db.GetALLPartCategoriesTreeWithImages(type, 25);
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<GetALLPartCategoriesTreeWithImages_Result, PartsTreeVM>()
                .ForMember(dest => dest.VehicleType, opt => opt.MapFrom(type))
            )
            .CreateMapper();
        var result = mapper.Map<List<PartsTreeVM>>(model);

        return result;
    }

Я хочу, чтобы параметр типа int был назначен для всех членов dest.VehicleType.

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

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

var model = _db.GetALLPartCategoriesTreeWithImages(type, 25);
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<GetALLPartCategoriesTreeWithImages_Result, PartsTreeVM>()
                .ForMember(dest => dest.VehicleType, opt => opt.MapFrom(s => type))
            )
            .CreateMapper();

Или вы можете использовать AfterMap для образца. Вы можете попробовать это:

var model = _db.GetALLPartCategoriesTreeWithImages(type, 25);
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<GetALLPartCategoriesTreeWithImages_Result, PartsTreeVM>()
                .AfterMap((s, d) => {
                    d.VehicleType = type;
                }) 
            )
            .CreateMapper();
2 голосов
/ 24 октября 2019

Как назначить значение для элемента назначения, но не из источника.

Вы можете использовать AfterMap, чтобы обеспечить наличие поля назначения.

.ForMember(...)
.ForMember(...)
.AfterMap((source, destination) => { /*do whatever you like with destination :-) */ });

Или, если это статические данные:

.ForMember(dest => dest.VehicleType, c => c.MapFrom((s => type));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...