Код отображения у вас в порядке и должен работать нормально, если все настроено правильно.Я считаю, что проблема, с которой вы столкнулись, заключается в том, что, хотя вы правильно настроили AM для своего примера, фактический картограф, выполняющий работу по переводу из модели в сущность, не использует вашу фактическую конфигурацию.Как и Эрик, я запустил код, который вы предоставили, и он работает нормально .... если я не закомментирую фактическое отображение в конфигурации.Я думаю, что причина, по которой вы получаете это исключение, заключается в том, что AM пытается конвертировать, используя свое собственное соглашение о соответствии, а не определенное отображение.AM может определить Id и Name автоматически без настройки, но не работает в городе.Вы должны убедиться, что ваш _mapper действительно указывает на «настроенный преобразователь».
Если я запускаю это (как у вас есть), код работает нормально.
public static void Configure()
{
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Country, CountryModel>();
cfg.CreateMap<CountryModel, Country>();.ForMember(x => x.City, opt => opt.Ignore());
});
}
ЕслиЯ запускаю это (с закомментированным сопоставлением), оно выдаст исключение, не отображенное на карту.
public static void Configure()
{
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Country, CountryModel>();
//cfg.CreateMap<CountryModel, Country>();.ForMember(x => x.City, opt => opt.Ignore());
});
}