[英]Map list of string to list of object using 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 Phone
{
public int Id {get;set;}
public string PhoneNumber {get;set;}
}
我正在嘗試使用DomainUser
將EntityUser
映射到EntityUser
。 但我不知道如何從IList<string>
映射到IList<Phone>
並填充PhoneNumer
屬性。
我的CreateMap
看起來像這樣:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.