50
A
回答
119
查詢語法
var query = from p in context.People
group p by p.name into g
select new
{
name = g.Key,
count = g.Count()
};
方法的語法
var query = context.People
.GroupBy(p => p.name)
.Select(g => new { name = g.Key, count = g.Count() });
10
一個有用的擴展是收集Dictionary
中的結果以進行快速查找(例如,在一個循環中):
var resultDict = _dbContext.Projects
.Where(p => p.Status == ProjectStatus.Active)
.GroupBy(f => f.Country)
.Select(g => new { country = g.Key, count = g.Count() })
.ToDictionary(k => k.country, i => i.count);
這裏最初發現: http://www.snippetsource.net/Snippet/140/groupby-and-count-with-ef-in-c
14
重要:實體框架7(現更名爲實體框架核心1.0/2.0)還不支持GroupBy()
的翻譯生成的SQL中的GROUP BY
(即使在最終的1.0版本中它也不會)。任何分組邏輯都將在客戶端運行,這可能會導致大量數據被加載。
最終如此編寫的代碼將自動開始使用GROUP BY,但現在如果將整個未分組數據集加載到內存中,則需要非常謹慎,這會導致性能問題。
對於這種情況下,這是一個交易斷路器,你將不得不手動編寫SQL並通過EF執行它。
如果有疑問激發了Sql Profiler並查看生成了什麼 - 您應該可以這麼做。
https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-entity-framework-core-rc2
相關問題
- 1. SQL集團通過計算
- 2. 實體框架查詢聯接和集團通過發行
- 3. 無法通過實體框架在集團選擇
- 4. 使用加入,集團通過和SUM在實體框架
- 5. 集團通過計數()
- 6. 實體框架組通過Sql生成
- 7. 轉換SQL集團相當於Linq中的實體框架
- 8. 實體框架/通用數據收集
- 9. LINQ到實體集團通過
- 10. 實體框架 - 通過ID
- 11. 實體框架通過wcf
- 12. 實體框架 - 通過
- 13. 實體框架 - 如何通過實體
- 14. 計數在實體框架
- 15. 實體框架計數子實體
- 16. 實體SQL集團通過問題,請大家幫忙
- 17. 集團通過查詢SQL
- 18. SQL集團通過定時
- 19. 集團通過給出SQL
- 20. SQL查詢集團通過
- 21. SQL集團通過發行
- 22. SQL - 集團通過問題
- 23. 集團通過聲明SQL
- 24. LINQ到SQL - 集團通過
- 25. SQL集團通過條件
- 26. 集團通過列在SQL
- 27. SQL和與集團通過
- 28. SQL集團通過案例
- 29. 集團通過SQL爲
- 30. 集團通過SQL語句
感謝您的平視 – 2016-12-09 20:13:01
同樣在1.1 – 2016-12-09 20:14:15
或1.2或2.0沒有分組。我放棄了 – 2017-09-13 00:49:24