Доброго дня!
Имею в наличии клиент на C# и SQLServer 2012. Для подключения использую EF6.
Пишу что-то вроде такого:
using (PCMSContext context = new PCMSContext())
{
Dictionary<Guid, pidPV> pPVs = context.pidPV.GroupBy(e => e.idPID).Select(g => g.OrderByDescending(f => f.date).FirstOrDefault()).ToDictionary(e => e.idPID);
}
Мне важна минимальная загрузка сети и клиента, соответственно у меня возникает вопрос следующего плана:
До какого момента данный LINQ-запрос транслируется в SQL запрос к БД ?
Важно, чтобы операция g => g.OrderByDescending(f => f.date).FirstOrDefault() выполнялась на стороне БД, т.к. строк pidPV в таблице просто громадное количество и мне не нужно их все загружать на клиент и делать операцию сортировки и выборки первого элемента локально на клиенте.
Мне известно, что ToDictionary() в любом случае выполняется на стороне клиента, т.к.этот метод расширения работает с коллекцией, реализующей IEnumerable.
Выполняется ли g => g.OrderByDescending(f => f.date).FirstOrDefault() на стороне SQLServer'а в данном случае ?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости