C# 如何使用AutoMapper将模型属性映射到视图模型
是否有简单的方法将单个模型特性映射到viewModel? 我需要从“外部模型”映射一些道具,从“内部模型”(复杂类型)映射其余道具C# 如何使用AutoMapper将模型属性映射到视图模型,c#,asp.net,asp.net-mvc,automapper,C#,Asp.net,Asp.net Mvc,Automapper,是否有简单的方法将单个模型特性映射到viewModel? 我需要从“外部模型”映射一些道具,从“内部模型”(复杂类型)映射其余道具 等级车 { 公共int Id{get;set;} 公共字符串名称{get;set;} 公共虚拟卡详细信息{get;set;} } 分类卡片明细表 { 公共int Id{get;set;} 公共字符串模型{get;set;} 公共日期时间年{get;set;} } 类详细信息viewmodel { 公共字符串名称{get;set;} 公共字符串模型{get;set;}
等级车
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟卡详细信息{get;set;}
}
分类卡片明细表
{
公共int Id{get;set;}
公共字符串模型{get;set;}
公共日期时间年{get;set;}
}
类详细信息viewmodel
{
公共字符串名称{get;set;}
公共字符串模型{get;set;}
公共日期时间年{get;set;}
}
然后我想能够:
var viewModel=mapper.Map(car);
我曾尝试使用以下内容绘制此图,但未成功:
CreateMap().ForAllMembers(opts=>opts.MapFrom(c=>c.Details));
PSü:我知道展平对象的命名转换,但在中,我不想更改视图模型的名称,也不想使用多个FormMember语句(我当前的模型比示例中的模型大得多)
PS²:我正在使用asp.net-core和一个AutoMapperConfig
静态类来完成所有配置。因此,在注册配置之前,我无法访问映射器实例。自动映射配置:
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Car, DetailsViewModel>()
.ForMember(x =>
x.Model, opt => opt.MapFrom(src => src.Details.Model))
.ForMember(x =>
x.Year, opt => opt.MapFrom(src => src.Details.Year));
});
var mapper = config.CreateMapper();
var config=new-MapperConfiguration(cfg=>
{
cfg.CreateMap()
.ForMember(x=>
x、 模型,opt=>opt.MapFrom(src=>src.Details.Model))
.ForMember(x=>
x、 年份,opt=>opt.MapFrom(src=>src.Details.Year));
});
var mapper=config.CreateMapper();
那你就可以了
var detail = mapper.Map<Car, DetailsViewModel>(car);
var detail=mapper.Map(汽车);
请参考我对问题的第一个观察