Tôi đang sử dụng Khung thực thể để nhận tổng số hàng cho một bảng. Tôi chỉ muốn đếm số hàng, không có mệnh đề where hay bất cứ thứ gì như thế. Truy vấn sau hoạt động, nhưng chậm. Mất khoảng 7 giây để trả lại số 4475.Nhận tổng số hàng trong Entity Framework
Tôi đoán ở đây là nó đang lặp qua toàn bộ bảng, giống như cách thức hoạt động của phương thức mở rộng IEnumerable.Count().
Có cách nào tôi có thể nhận tổng số hàng "nhanh" không? Có cách nào tốt hơn?
public int GetLogCount()
{
using (var context = new my_db_entities(connection_string))
{
return context.Logs.Count();
}
}
thế nào để đếm hàng trong EntityFramework mà không cần tải nội dung? http://stackoverflow.com/questions/890381/how-to-count-rows-within-entityframework-without-loading-contents – sevdalone
Hãy chắc chắn rằng context.Logs là một DbSet, IDbSet, hoặc một IQueryable, không phải là một IEnumerable. Nếu nó là một IEnumerable, toàn bộ bảng sẽ được lấy và tính. Nếu nó là một IQueryable, truy vấn sẽ được tạo ra để đếm các hàng trong cơ sở dữ liệu sẽ giống như "SELECT COUNT (*) FROM dbo.Logs" (Nếu nó là IdbSet hoặc DbSet, nó sẽ được coi là một IQueryable) – Grax