структура сущности сущность sql против linq для сущностей - PullRequest
7 голосов
/ 01 сентября 2009

Какова цель сущности sql, я имею в виду, если у вас есть linq для сущностей, зачем вам нужно писать запросы в строке, есть ли какие-то причины для производительности или что-то еще?

Ответы [ 2 ]

9 голосов
/ 01 сентября 2009

LINQ to Entities не позволяет вам получить доступ ко всем функциям вашей базы данных.Возможность «добраться до» базы данных иногда необходима для сложных запросов, в первую очередь для того, чтобы осуществить их или улучшить иногда ужасный выбор, который система LINQ to Entities сделает для вашего запроса.Тем не менее, я считаю, что LINQ to Entities должен быть первым инструментом, к которому можно обратиться.Если производительность становится проблемой, или у вас есть что-то более сложное, я бы затем включил эту проблемную часть в хранимую процедуру и вызвал бы ее.В наши дни нет оснований использовать строки в качестве основы для запросов.

2 голосов
/ 02 сентября 2009

ESQL позволяет вам выбирать параметры сортировки в предложении where, что не поддерживается в LINQ-to-Anything. Это может быть действительно полезным. ESQL также позволяет вам указать точный тип, который вы хотите вернуть, когда типы наследуются друг от друга (в отличие от LINQ OfType, который возвращает экземпляры определенного типа и любого подтипа). Кроме того, я не могу придумать вескую причину для его использования. Иногда приятно иметь возможность строить запросы в строках, но DynamicQuery / Dynamic LINQ, как правило, достаточно хороши в очень редких случаях, когда это необходимо.

Я думаю (возможно, цинично), что «реальная» цель ESQL - «он предшествует LINQ».

Что касается точки зрения Годеке по исправлению неоптимальных запросов, мне еще предстоит увидеть один, который я не смог бы исправить, изменив выражение LINQ. И ESQL, и L2E заканчиваются как CCT, поэтому конвейер генерации SQL одинаков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...