自动映射器将Viewmodel映射到具有相同名称的Model
本文关键字:映射 Model Viewmodel | 更新日期: 2023-09-27 18:19:39
Viewmodel
public string Personal_Data_Surname { get; set; }
public string FamilyMember_SurName { get; set; }
实体类申请人
public string SurName { get; set; }
实体类FamilyMember
public string SurName { get; set; }
自动映射器配置
Mapper.Configuration.RecognizePrefixes("Personal_Data_");
Mapper.CreateMap<ApplicationViewModel, Applicant>();
Mapper.Configuration.RecognizePrefixes("FamilyMember_");
Mapper.CreateMap<ApplicationViewModel, FamilyMember>();
控制器代码映射实体
Applicant applicant = Mapper.Map<ApplicationViewModel, Applicant>(vaModel);
FamilyMember familyMember = Mapper.Map<ApplicationViewModel, FamilyMember>(vaModel);
问题是它将Personal_Data_Surname从视图模型映射到实体类"申请人"answers"家庭成员"中的姓氏。是否可以为特定类型的指定前缀
您必须使用ForMemeber
方法和MapFrom
选项方法自定义映射,例如:
Mapper.CreateMap<ApplicationViewModel, Applicant>()
.ForMember(viewModel => viewModel.Personal_Data_Surname,
opt => opt.MapFrom(entity => entity.SurName));
然后,AutoMapper将把Personal_Data_Surname
视图模型的属性映射到SurName
实体的属性。对其他实体执行此操作。