Выполнение LINQ запроса на стороне SQLServer

228
02 июня 2017, 10:08

Доброго дня!

Имею в наличии клиент на 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'а в данном случае ?

READ ALSO
Как задать условие в C# для StreamReader

Как задать условие в C# для StreamReader

Делаю парсинг текстового файлаНужно задать условие: "если строка начинается с числа" и тд

266
Алгоритм швидкого сортування [требует правки]

Алгоритм швидкого сортування [требует правки]

Мені потрібно застосувати алгоритм швидкого сортування послідовності, як це написати?

219
Нужно использовать массив в 2 пабликах

Нужно использовать массив в 2 пабликах

Здравствуйте, столкнулся с проблемой, что нужно использовать массив в двух piblic`ах одновременно, не знаю как это сделать, visual studio не находит...

220