5
我在C#中的實體框架中查詢緩慢時遇到了一些問題。我創建了一個名爲Page來處理分頁的擴展方法,但是當我使用它時,查詢變得非常慢。如果我只是做.sip(page.Value * pageSize.Value).Take(pageSize.Value)而不是使用Page查詢得到更快。我想這樣做與頁面在分頁之前獲取所有聯繫人。有沒有辦法來防止這種情況,還是我在做其他事情?使用擴展方法的實體框架分頁速度很慢?
查詢:
var contacts = db.Contacts
.Where(x => x.AccountID == accountID && x.Deleted == false)
.OrderByDescending(x => x.FirstName)
.ThenBy(x => x.LastName)
.ThenBy(x => x.CreatedDate)
.Page(page, pageSize);
return contacts.ToList();
擴展方法:
public static IEnumerable<T> Page<T>(this IEnumerable<T> elements, int? page, int? pageSize)
{
if (page.HasValue && pageSize.HasValue)
return elements.Skip(page.Value * pageSize.Value).Take(pageSize.Value);
else
return elements;
}