gpt4 book ai didi

c# - 如何使用 LINQ 查询加入枚举

转载 作者:行者123 更新时间:2023-11-30 20:19:01 29 4
gpt4 key购买 nike

我有用户表(来自 ASP.CORE 的 IdentityUser 的默认 ApplicationUser 表)并且我为 RoleType 添加了额外的字段。我还添加了一个枚举来指定角色定义。

public enum Roles
{
Administrator = 1,
Headquarters = 2,
Branch = 3,
Driver = 4,
Client = 5
}

现在我想将 View 中的所有用户显示为一个表格以及角色描述。

我无法使用 LINQ 连接对枚举和用户表进行 LINQ 查询。

最佳答案

要从枚举中获取角色列表,请使用:

var roles = Enum.GetValues(typeof(Roles)).Cast<Roles>()
.Select(r => new { Value = (int)r, Name = r.ToString() }).ToList();

然后您可以在 Linq 查询中使用它,例如:

var roles = Enum.GetValues(typeof(Roles)).Cast<Roles>()
.Select(r => new { Value = (int)r, Name = r.ToString() }).ToList();

var users = from u in ApplicationUser
join r in roles on u.Role equals r.Value
select new {Name = u.Name, RoleId = u.Role, RoleDescription = r.Name} ;

A simpler way without the Enum.GetValues is:

var users = from u in ApplicationUser
select new {Name = u.Name, RoleId = u.Role, RoleDescription = (Roles)r.Role.ToString()} ;

关于c# - 如何使用 LINQ 查询加入枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39609767/

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