C# 使用AutoMapper将字符串列表映射到对象列表
我有一个域和实体类,如下所示:C# 使用AutoMapper将字符串列表映射到对象列表,c#,automapper,C#,Automapper,我有一个域和实体类,如下所示: public class DomainUser { public string Username {get;set;} public IList<string> PhoneNumbers {get;set;} } public class EntityUser { public string Name {get;set;} public IList<Phone> PhoneNumbers {get;set;
public class DomainUser
{
public string Username {get;set;}
public IList<string> PhoneNumbers {get;set;}
}
public class EntityUser
{
public string Name {get;set;}
public IList<Phone> PhoneNumbers {get;set;}
}
public class Phone
{
public int Id {get;set;}
public string PhoneNumber {get;set;}
}
Config.CreateMap<DomainUser, EntityUser>()
.ForMember(dest => dest.Username, opts => opts.MapFrom(src => src.Username)
.ForMember(entity => entity.PhoneNumbers.Select(x => x.PhoneNumber), opts => opts.MapFrom(domain => domain.PhoneNumbers) // This doesn't work, but hopefully shows what I'm trying to achieve
如何使用AutoMapper解决此问题?这里是正在运行的示例:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<string, Phone>().ForMember(dest => dest.PhoneNumber, m => m.MapFrom(src => src)); // <-- important line!
cfg.CreateMap<DomainUser, EntityUser>()
.ForMember(dest => dest.Name, m => m.MapFrom(src => src.Username)).ForMember(
dest => dest.PhoneNumbers,
m => m.MapFrom(src => src.PhoneNumbers));
});
DomainUser du = new DomainUser {PhoneNumbers = new List<string> {"123", "1234", "12345"}};
EntityUser eu = Mapper.Map<DomainUser, EntityUser>(du);
Mapper.Initialize(cfg=>
{
cfg.CreateMap().formMember(dest=>dest.PhoneNumber,m=>m.MapFrom(src=>src));//dest.Name,m=>m.MapFrom(src=>src.Username)).formMember(
dest=>dest.PhoneNumbers,
m=>m.MapFrom(src=>src.PhoneNumbers));
});
域名用户du=新域名用户{电话号码=新列表{“123”、“1234”、“12345”};
EntityUser eu=Mapper.Map(du);