gpt4 book ai didi

c# - 使用 Automapper 将字符串映射到 List,反之亦然

转载 作者:行者123 更新时间:2023-11-30 14:51:14 25 4
gpt4 key购买 nike

基本上我有这个类,它代表我的数据库 1:1

public class User
{
public int UserID { get; set; }
public string Username { get; set; }
public string Role { get; set; }
}

我有这个 View 模型

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; }
}

我不知道如何在这两者之间进行映射。我当前的设置:

Mapper.CreateMap<UserEditViewModel, User>().ReverseMap();

最佳答案

这里有类似你问题的东西,请你看看这个AutoMapper: Collection to Single string Property

PS:这是一个将集合映射到单个字符串属性的示例,您的示例可能如下所示;

Mapper.CreateMap<User, UserEditViewModel>()
.ForMember(dest => dest.Roles,
m => m.MapFrom(src => src.Role.Split(',').ToList()));

并像下面这样映射实例;

User myUser = new User();
myUser.Role = "r1,r2,r3,r4,r5";
myUser.UserID = 1;
myUser.Username = "MyUserName";

UserEditViewModel result = Mapper.Map<UserEditViewModel>(myUser);

enter image description here

2020 编辑:由于 Expression.Call API 不支持可选参数,您应该将 src.Role.Split(',') 替换为 src。 Role.Split(',', System.StringSplitOptions.None)src.Role.Split(',', System.StringSplitOptions.RemoveEmptyEntries)

关于c# - 使用 Automapper 将字符串映射到 List<string>,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35008760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com