[英]How to map List<int> into property of complex type using Automapper?
[英]Automapper: how to map many members using a property of source type?
// source classes
public class User
{
public string Id { get; set; }
public string Name { get; set; }
}
public class UserStatus
{
public User User { get; set; }
public int Status { get; set; }
}
// dest classes
public class UserVM
{
public string Id { get; set; }
public string Name { get; set; }
}
public class UserStatusVM : UserVM
{
public int Status { get; set; }
}
//Automapper configuration
c.CreateMap<User, UserVM>();
c.CreateMap<UserStatus, UserStatusVM>()
.ForMember(dest => dest.Status, opt => opt.MapFrom(source => source.Status))
.ForAllOtherMembers(opt => opt.ResolveUsing(source => Mapper.Map<User, UserVM>(source.User))); // error there
我的目標是從UserStatus
類的User
屬性映射UserStatusVM
所有成員(不包括Status
1),就像在映射Users -> UserVM
。
我該如何實現? 是唯一的解決方案ForMember(dest => dest.Id, opt => opt.MapFrom(source => source.User.Id))
例如ForMember(dest => dest.Id, opt => opt.MapFrom(source => source.User.Id))
等。
重命名UserVM
的屬性
public class UserVM
{
public string UserId { get; set; }
public string UserName { get; set; }
}
UserId
和UserName
將按照約定分別從UserStatus.User.Id
和UserStatus.User.Name
映射。
注意
映射時, UserVM.UserId
看到UserVM.UserId
不在UserStatus
類型上退出,因此它將UserId
拆分為User
和Id
(通過CamelCase),並從UserStatus.User.Id
映射UserVM.UserId
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.