2
單個查詢我有以下兩個表格獲取外鍵表使用LINQ
Groups
- Id
- Name
Members
- Id
- GroupId
- Name
我想與他們的會員數顯示組的列表。我可以獲得所有組,然後使用foreach語句來計算成員數量。但這是非常低效的。
有沒有辦法寫一個LINQ查詢來返回單個查詢中的成員數?
單個查詢我有以下兩個表格獲取外鍵表使用LINQ
Groups
- Id
- Name
Members
- Id
- GroupId
- Name
我想與他們的會員數顯示組的列表。我可以獲得所有組,然後使用foreach語句來計算成員數量。但這是非常低效的。
有沒有辦法寫一個LINQ查詢來返回單個查詢中的成員數?
你可以用簡單的linq-to-entities查詢來完成。您可以將其投影到匿名類型,也可以創建自己的類來存儲信息。
var query = from g in context.Groups
join m in context.Members on g.Id equals m.GroupId into members
select new
{
Group = g,
MemberCount = members.Count(),
};
如果有外鍵關係,是不是會工作?
var q = context.Groups.Select(x => new { Group = x.Name, Count = x.Members.Count() });
還沒有測試過,但是這有效嗎? Group = g – James 2012-07-24 16:51:04
@James - 是的,或者你可以選擇你想要的屬性:'GroupId = g.Id,GroupName = g.Name,etc' – Aducci 2012-07-24 17:18:27