我正在使用實體框架來獲取包含數百萬條記錄的表的簡單行數,而且我不想要任何where子句。 我嘗試使用Count方法,但取得計數需要很長時間。有沒有什麼有效的方法來等待那麼久呢?使用實體框架獲取大表的行數
-2
A
回答
2
3
我覺得你首先檢索所有記錄,然後指望他們。你應該直接計數你的記錄。
using(DatabaseContext db = new DatabaseContext())
{
//what I think you are doing:
int countLong = db.UserAccount.ToList().Count();
//what you should be doing
int countShort = db.UserAccount.Count();
//include where clauses inside count, wrong way:
int countLong2 = db.UserAccount.ToList().Count(x => x.Active);
//include where clauses inside count, good way:
int countShort2 = db.UserAccount.Count(x => x.Active);
//or if you don't like lambda expressions.
int countLong3 = (from x in db.UserAccount
//where x.Active //optional
select x).ToList().Count();
int countShort3 = (from x in db.UserAccount
//where x.Active //optional
select x).Count();
}
DatabaseContext
將是你的類,它擴展DbContext
類
相關問題
- 1. 使用實體框架獲取表中的所有記錄與實體框架
- 2. 使用實體框架使用vb.net獲取表數據
- 3. 使用實體框架中的組獲取行數
- 4. 使用實體框架在列表中獲取行索引
- 5. 使用實體框架獲取視圖
- 6. 獲取使用實體框架
- 7. 使用實體框架從嵌套表中獲取數據
- 8. 與實體框架獲取
- 9. 實體框架:獲取相關實體
- 10. 實體框架按名稱獲取表
- 11. 實體框架獲取最新數據
- 12. 如何使用實體框架獲取行的序列號?
- 13. 如何使用實體框架通過LINQ獲取行號?
- 14. 在實體框架中獲取表格的前N行
- 15. 使用實體框架在MVC中獲取動態表名稱
- 16. 如何使用實體框架獲取臨時表
- 17. 對大項目使用實體框架
- 18. 實體框架 - 從實體獲取表名
- 19. 實體框架4.1大量的表(715)
- 20. 從實體框架中的父實體獲取子實體c#
- 21. 實體框架獲取具有子實體的實體
- 22. 如何使用實體框架獲取數據庫表的數量?
- 23. 獲取實體框架中的總行數
- 24. 獲取過去的實體框架BeginTransaction
- 25. 無法使用實體框架從WCF服務獲取數據
- 26. ASP.NET MVC,使用實體框架獲取和顯示數據
- 27. 使用實體框架從存儲過程獲取數據
- 28. 實體框架的使用
- 29. 實體框架:執行大量查詢
- 30. 鎖定數據庫行使用實體框架核心讀取
你有示例代碼?如果您使用'Count()'的IEnumerable版本,您的應用程序將檢索所有行並對其進行計數。如果您使用'Count()'的'IQueryable'版本,則數據庫服務器將執行count操作,並且_should fast_。 – Howwie
你可以顯示你的代碼到目前爲止? – Sampath
只需對數據庫執行原始SQL查詢。這是實現這一目標的最快方法。 https://msdn.microsoft.com/en-us/data/jj592907.aspx – hellwd