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