[英]many to many Entity Framework GetUsersInRole()
我有兩個實體類型:角色和用戶,有很多關系。 即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();
}
看這個:
public override string[] GetUsersInRole(string roleName)
{
using (MembershipDb db = new MembershipDb())
{
return db.Roles
.Where(r => r.Name == roleName)
.SelectMany(r => r.Users, (r, s) => s.User.UserName).ToArray();
}
}
return db.Roles.Where(r => r.Name == roleName)
.SelectMany(r => r.Users)
.Select(u => u.UserName)
.ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.