gpt4 book ai didi

c# - 多对多 Entity Framework GetUsersInRole()

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:58 25 4
gpt4 key购买 nike

我有两个实体类型:具有多对多关系的角色和用户。即 Role 具有 Users 属性,而 User 具有 Roles 属性。我必须获取包含属于已定义角色的用户名的字符串数组。我写了一些代码,但它并不优雅。我想用一个 linq 表达式来做到这一点。可能吗?

public override string[] GetUsersInRole(string roleName)
{
List<string> names = new List<string>();
using (MembershipDb db = new MembershipDb())
{
Role role = db.Roles.FirstOrDefault(r => r.Name == roleName);
foreach (User u in role.Users)
{
names.Add(u.UserName);
}
}
return names.ToArray();
}

最佳答案

return db.Roles.Where(r => r.Name == roleName)
.SelectMany(r => r.Users)
.Select(u => u.UserName)
.ToArray();

关于c# - 多对多 Entity Framework GetUsersInRole(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068256/

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