[英]Same mapping for two different types using Automapper
假设我有 UserInfoDto、UserDto 和 User 类
//Dto
public class UserInfoDto
{
public string UserName {get; set;}
public DateTime DoB {get; set;}
}
//Another Dto
public class UserDto
{
public string Name {get; set;}
public DateTime DateOfBirth {get; set;}
}
//DB model
public class User
{
public string Name {get; set;}
public DateTime DateOfBirth {get; set;}
}
我想创建2个映射:
从 UserInfoDto 到 UserDto
从 UserInfoDto 到 User
CreateMap<UserInfoDto, UserDto>().ForMember(d => d.Name, opt => opt.MapFrom(s => s.UserName)).ForMember(d => d.DateOfBirth, opt => opt.MapFrom(s => s.DoB)) CreateMap<UserInfoDto, User>().ForMember(d => d.Name, opt => opt.MapFrom(s => s.UserName)).ForMember(d => d.DateOfBirth, opt => opt.MapFrom(s => s.DoB))
如您所见,我有两个相同的映射。 有没有办法只创建一个映射(例如第一个映射)并在第二种情况下重用这个映射的设置?
我问是因为在现实世界的代码中我有 20 多个属性,我想以某种方式避免重复。
如果您的属性具有相同的名称,则无需明确 map 它们。 执行以下操作就足够了:
CreateMap<UserInfoDto, UserDto>();
CreateMap<UserInfoDto, User>();
所以Automapper
将 map 属性自己命名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.