У меня есть запрос, который я не знаю, как повысить производительность.
Я вижу в EF-Profiler, что sql-запрос занимает 154 мс, что нормально, поскольку БД находится в облаке.Проблема в том, что сопоставление выполняется с помощью EF.Это занимает общее время 2801 мс.Это большой вопрос, всего было получено 3698 строк.
Что я должен сделать, чтобы увеличить скорость отображения EF?Мой вопрос выглядит так:
var parcels =
context.Parcels.Include("ParcelStatusLogs")
.Include("Comments")
.Include("Comments.CommentStatu")
.Where(p => p.CarrierDateSent >= dateFrom.Date &&
p.CarrierDateSent <= dateTo.Date &&
p.ClientCompanyID == user.ComapanyID &&
(p.IsActive == true || p.IsActive == isActive))
.OrderBy(r => r.CarrierDateSent).ThenByDescending(p => p.ParcelStatusLogs.OrderByDescending(
f => f.ParcelStatusID).FirstOrDefault().ParcelStatusID).ThenBy(p =>p.ParcelStatusLogs.OrderBy(f =>f.ParcelStatusEventDate).FirstOrDefault().ParcelStatusEventDate)
Должен ли я подумать о том, чтобы выйти за пределы EF и использовать что-то еще?
Спасибо