[英]How can I get a list of all users in groups linked to the admin?
例如,我有3個基團與下列標識: 1
, 2
, 3
;
id | name |
---------------
1 | group1 |
2 | group2 |
3 | group3 |
另外,我在這些組中有用戶:第1
組為2
個,第2
組為3
,第3組為1 3
;
id | user | groupid |
---------------------
1 | user1 | 1
2 | user2 | 1
3 | user3 | 2
4 | user4 | 2
5 | user5 | 2
6 | user6 | 3
當然,我有表格admgroups
id | groupid | admid |
----------------------
1 | 1 | 3 |
2 | 2 | 4 |
3 | 3 | 3 |
4 | 2 | 5 |
我想要得到的-一個列表,其中應包括與admin鏈接的組中的所有用戶,例如id =3。因此結果應類似於: var list = {"user1", "user2", "user6"}
您可以使用select
進行以下操作。 首先,找到與指定管理員相關的groupid
。 然后,選擇具有所選groupid
用戶:
var admin_id = 3;
var admin_groups = admgroups.Where(x=> x.admid == admin_id).Select(x=> x.groupid).ToList();
var result = users.Select(x=> admin_groups.Contains(x.groupid)).ToList();
只需將這些行放入代碼中:
var list = (from cl in (from adm in admgroups
join gr in groups
on adm.groupid equals gr.Id
where adm.admid==3
select new {gr.Id})
join client in users
on cl.Id equals client.groupid
select new {client.user}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.