Запрос в том виде, в котором он представлен , сделает ровно один оператор выбора. Интересно, скрыта ли здесь проблема в том, чтобы перевести вопрос на простой пример? Скорее всего, в фактическом коде данные не помещаются в список. Такие методы, как .Where()
only compose a query - данные не загружаются в список, поэтому следующие 2 запроса:
var tableData = dataContext.TableName.Where(row => row.Foo == bar);
foreach(var items in tableData) {...}
foreach(var items in tableData) {...}
Добавление .ToList()
заставит его буферизоваться в памяти в одном запросе TSQL; последующее перечисление по списку будет сделано в памяти (LINQ-to-Objects).
Конечно, вы можете описать, что LINQ-to-SQL выполняет довольно просто:
dataContext.Log = Console.Out; // or any other text-writer