Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用AutoMapper将模型属性映射到视图模型_C#_Asp.net_Asp.net Mvc_Automapper - Fatal编程技术网

C# 如何使用AutoMapper将模型属性映射到视图模型

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;}

是否有简单的方法将单个模型特性映射到viewModel? 我需要从“外部模型”映射一些道具,从“内部模型”(复杂类型)映射其余道具

等级车
{
公共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(汽车);

请参考我对问题的第一个观察