Код, который вы вставили, на самом деле вообще не обращается к базе данных - то, что вы будете делать дальше с запросом, определит, сколько данных в итоге будет передано клиенту. Возможно ли, что то, что вы делаете позже, заставляет версию LINQ загружать больше данных, чем версия набора данных?
Я сделал такой же переход в проекте и видел только эквивалентную или лучшую производительность от LINQ, но были случаи, когда версия LINQ выполняла намного больше обращений к серверу, например, выполнение Count () с последующей выборкой данных в виде двух отдельных запросов к серверу. Обычно я решал эту проблему с помощью .ToList (), чтобы получить данные локально, прежде чем работать с ними. Вам иногда нужно использовать SQL Profiler, чтобы узнать, что происходит за кулисами.