AutoMapper не удалось преобразовать простой DTO - PullRequest
0 голосов
/ 01 февраля 2019

В настоящее время работаем через устаревший код, переходя от DTO, созданных вручную, к использованию Automapper.Все шло нормально, пока я не пришел к этому относительно простому классу:

public class JobRoleCompanyTypeDto
{
    public int Id { get; set; }
    public string Description { get; set; }
    public string ResourceDescription { get; set; }
}

Мы используем локализацию, и некоторые строки требуют перевода, поэтому я добавил это в конфигурацию автопробора, как я сделал для других таких свойств:

cfg.CreateMap<JobRoleCompanyType, JobRoleCompanyTypeDto>()
   .ForMember(dto => dto.Description, opt => opt.MapFrom(jrc => jrc.Description.Translate()));  

Но когда я на самом деле пришел проверить его:

JobRoleCompanyType testJrc = _context.JobRoleCompanyTypes.First();
var mappedJrc = Mapper.Map<JobRoleCompanyTypeDto, JobRoleCompanyType>(testJrc);

Он отказывается компилироваться, выдавая ошибку

не может преобразовать из 'MyNamespace.Entity.Model.JobRoleCompanyType 'to' MyNamespace.DAL.Model.JobRoleCompanyTypeDto '

Я сопоставил множество других типов таким образом, поэтому я озадачен, почему этот не делает этогоРабота.Без сомнения, я пропустил что-то глупое и простое, но я не вижу, что это такое?

1 Ответ

0 голосов
/ 01 февраля 2019

Вы перепутали порядок между типом источника и типом назначения, попробуйте это:

var mappedJrc = Mapper.Map<JobRoleCompanyType,JobRoleCompanyTypeDto>(testJrc);

Вы также можете использовать другую перегрузку, которая принимает параметр object в качестве ввода и вообще пропускает тип источника:

var mappedJrc = Mapper.Map<JobRoleCompanyTypeDto>(testJrc);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...