Есть ли простой способ сопоставить одно свойство модели в viewModel? мне нужно отобразить некоторые опоры от «модели Outter» и остальные от «внутренней модели» (комплексного типа) ...Как сопоставить свойство модели для просмотра модели с использованием AutoMapper
class Car
{
public int Id {get;set;}
public string Name {get;set;}
public virtual CarDetails Details {get;set;}
}
class CarDetails
{
public int Id {get;set;}
public string Model {get;set;}
public DateTime Year {get;set;}
}
class DetailsViewModel
{
public string Name {get;set;}
public string Model {get;set;}
public DateTime Year {get;set;}
}
Тогда я хочу, чтобы иметь возможность:
var viewModel = mapper.Map<Car, DetailsViewModel>(car);
Я попытался сопоставить это без успеха, используя что-то вроде этого:
CreateMap<Car, DetailsViewModel>().ForAllMembers(opts => opts.MapFrom(c => c.Details));
PS¹ .: Я ав имеют смысл именования для выравнивания объектов, но не хотят изменять имена модели представления и не хотят использовать несколько операторов ForMember тоже (моя текущая модель намного больше, чем та, что приведена в примере).
PS² .: Я использую asp.net-core и статический класс AutoMapperConfig
, чтобы выполнить всю конфигурацию. Поэтому перед регистрацией конфигураций у меня нет доступа к экземпляру Mapper
.
Пожалуйста, обратитесь к первому наблюдению моего вопроса –