Является ли VB.NET Aggregate запросом смертельно ошибочным при использовании в качестве первого (внешнего) предложения выражения Linq с несколькими предложениями Into, потому что каждое предложение Into выполняется отдельно?
 "Очевидный" ответ SELECT MIN(ZoneMin), MAX(ZoneMin) FROM Plant в LINQ to SQL -
Dim limits = Aggregate p In Plants Select p.ZoneMin Into Min(), Max()
Однако этот ответ фактически извлекает каждый из Min и Max (и если вы включаете другие агрегированные функции, такие как Count и Average) в отдельные SQL-запросы. Это можно легко увидеть в LINQPad.
Есть ли транзакция (или что-то другое, делающая эти запросы атомарными), не показанные LINQPad, или это состояние гонки, ожидающее своего существования? (И поэтому вам нужно сделать трюки, указанные в ответе на вышеупомянутый вопрос, для принудительного единственного запроса, который возвращает несколько агрегатов.)
Итак, существует ли запрос LINQ-to-SQL с помощью Aggregate, который возвращает несколько агрегатных функций в одном (или, по крайней мере, "атомарном" ) запросе?
 <суб > (Я также говорю "очевидный", потому что очевидный ответ мне, Aggregate p In Plants Into Min(p.ZoneMin), Max(p.ZoneMin), фактически извлекает всю таблицу дважды, даже когда оптимизирован, а затем использует Linq-to-Entities Min и Max для получения результата: -()
  Я думал, что Aggregate не является VB-специфичным, но похоже, что у С# нет этого выражения запроса, поэтому я изменил сообщение .net до vb.net.
