基本上我有这个类,用我的数据库代表1:1
public class User
{
public int UserID { get; set; }
public string Username { get; set; }
public string Role { get; set; }
}
我有这个viewmodel
public class UserEditViewModel
{
public UserEditViewModel()
{
Roles = new List<string>();
}
public int UserID { get; set; }
[Required]
public string Username { get; set; }
[Required]
public List<string> Roles { get; set; }
}
我不知道如何在这些之间进行映射2.我当前的设置:
Mapper.CreateMap<UserEditViewModel, User>().ReverseMap();
答案 0 :(得分:4)
这里有类似于你的问题,请你查看AutoMapper: Collection to Single string Property
PS:这是将集合映射到单个字符串属性的示例,可能您的示例应如下所示;
splines=false
映射下面的实例;
Mapper.CreateMap<User, UserEditViewModel>()
.ForMember(dest => dest.Roles,
m => m.MapFrom(src => src.Role.Split(',').ToList()));
答案 1 :(得分:1)
如果要连接字符串列表中的所有值,则需要使用ForMember
。在mapper中,您需要使用UserEditViewModel
方法。
从User
到Mapper.CreateMap<User, UserEditViewModel>().ForMember(user => user.Role, opt => opt.MapFrom(userEdit => string.Join(", ", userEdit.Roles)));
:
User
从UserEditViewModel
到Mapper.CreateMap<UserEditViewModel, User>().ForMember(userEdit => userEdit.Roles, opt => opt.MapFrom(user => user.Role.Split(",").ToList()));
:
.AfterMap((src,dest) => dest.Roles.Add(src.Role))
答案 2 :(得分:0)