AutoMapper добавляет пользовательское свойство, которое не существует в источнике, но должно существовать в цели - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть простой контроллер ASP.NET Core:

[HttpGet("{id:int}")]
[ProducesResponseType(200)]
[ProducesResponseType(404)]
[ProducesResponseType(500)]
public ActionResult<RequestDto> Get(int id, [FromQuery]GetRequest getRequest)
{
    var query = Mapper.Map<GetRequest, FindRequestQuery>(getRequest);
    query.Id = id;

    var request = _requestService.Find(query);

    if (request == null)
    {
        return NotFound();
    }

    var requestDto = Mapper.Map<Request, RequestDto>(request);

    return Ok(requestDto);
}

У моего GetRequest нет свойства Id, однако у моего FindRequestQuery есть одно.

ПримерВыше работает просто отлично, но мне интересно знать, есть ли способ сказать AutoMapper отображать идентификатор из параметра метода в свойство FindRequestQuery?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вам нужна возможность, предоставляемая функцией Inline Mapping AutoMapper.

В частности, она будет выглядеть примерно так

var query = Mapper.Map<GetRequest, FindRequestQuery>(
                    getRequest, 
                    opt => opt.ConfigureMap().ForMember(dest => dest.Id, m => m.MapFrom(src => id)));
0 голосов
/ 05 декабря 2018
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...