Automapper возвращает объект, не указанный в списке - PullRequest
0 голосов
/ 09 мая 2020
var company = _companyManager.GetAll();
var result = _mapper.Map<IDataResult<List<CompanyListDto>>>(company);

Когда я использую что-то, кроме List при использовании Automapper, я получаю Отсутствует конфигурация карты типов или неподдерживаемое сопоставление. ошибка.

Как я могу сопоставить другой объект из список?

Операция следующая. Код logi c

Решил проблему Решил следующим образом. Спасибо за ответы.

var result = _mapper.Map<IDataResult<List<CompanyListDto>>>(company.Data);

1 Ответ

1 голос
/ 09 мая 2020

Ваш automapper не может найти конфигурации для типа сопоставления, который вы пытаетесь сделать. Я предполагаю, что вы еще не сделали свои настройки. Прежде всего, вам нужно указать конфигурации сопоставления для домена. Это можно сделать двумя способами.

  1. Использование профилей (внедрение зависимостей) Ссылка
  2. Использование метода stati c

Если вы используете stati c метод. настройте его в startup.cs, чтобы он был инициализирован при запуске приложения. Для получения дополнительных сведений

например:

AutoMapper.Mapper.Initialize(cfg => { 
  cfg.CreateMap<Source, Destination>();
});

Для создания пользовательских конфигураций вы можете использовать следующие

AutoMapper.Mapper.Initialize(cfg => { 
  cfg.CreateMap<Source, Destination>().ForMember(dest => dest.property, source => source.MapFrom(x => x.property))
});

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

...