Automapper Unmapped элемент в отображении списка - PullRequest
0 голосов
/ 02 июня 2019

Вот модель и ViewModel

    [Table(name: "hCodeRequests")]
    public class CodeRequest
    {
        public int Id { get; set; }

        [Required]
        [StringLength(50)]
        [MaxLength(50)]
        public string Nome { get; set; }

        public ICollection<ArtigoCodeRequest> ArtigoCodeRequests { get; set; }
    }

представление Модель

public class CodeRequestViewModel
{
    public int Id { get; set; }
    public string Nome { get; set; }
    public bool Selected { get; set; }
}

На моей странице бритвы OnGet обработчик это то, что я делаю, и это работает

    [BindProperty]
    public IList<CodeRequestViewModel> CodeRequestsViewModelList { get; set; }

public async Task<IActionResult> OnGetAsync()
{
    var codeRequestModelList = _context.CodeRequests.ToList();
    CodeRequestsViewModelList = _mapper.Map<List<CodeRequest>, List<CodeRequestViewModel>>(codeRequestModelList);
}

теперь обработчик OnPost. Я хочу получить значения из виртуальной машины обратно в мою модель, но это не работает

var CodeRequests = _mapper.Map<List<CodeRequestViewModel>, List<CodeRequest>>(CodeRequestsViewModelList
        .Where(c => c.Selected == true).ToList());

Я пробовал в профиле игнорировать свойство Selected и все еще выдает мне то же исключение из свойства unmapped

    CreateMap<CodeRequest, CodeRequestViewModel>().ForMember(dest => dest.Selected, source => source.Ignore());

1 Ответ

0 голосов
/ 02 июня 2019

Я думаю, вам нужно использовать ReverseMap() в конце вашего CreateMap метода, чтобы заставить это отображение работать в двух направлениях.

CreateMap<CodeRequest, CodeRequestViewModel>().ForMember(dest => dest.Selected, source => source.Ignore()).ReverseMap();
...