作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有用户表(来自 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/
我是一名优秀的程序员,十分优秀!