Информация об изменениях

Сообщение Re: [Голосование] Используете ли вы синтаксис в LINQ? от 02.12.2015 9:12

Изменено 02.12.2015 9:26 VasEug

Здравствуйте, VladD2.

Хотя очень хорошо знаю синтаксис SQL, но не использую его по нескольким причинам:

1. Для оптимизации генерируемых LINQ2SQL запросов и для сборки вложенных запросов из других подзапросов по различным условиям пользуюсь самописным билдером выражений (условие поддерживает вложенные подзапросы из различных сущностей). Поэтому результирующие выражение в LINQ выглядят следующим образом:

Expression<Func<T, bool>> condition = ...
var linqexpr = dc.Entity.Where(condition)
;

2. использую собственные расширения LINQ2SQL для генерации SQL запросов, которых нет в синтаксисе LINQ-а, например, выборку иерархических объектов:

dc.Hierarchical.Descendants(t => t.Id, t => t.ParentId, ...) // производит выборку дерева элементов с полем ключа Id и полем ключа родителя ParentId;

Вообщем, использование синтаксиса LINQ накладывает большие ограничения на использование функциональности поставщика запросов.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
Здравствуйте, VladD2.

Хотя и очень хорошо знаю синтаксис SQL, но не использую его в LINQ по нескольким причинам:

1. Для оптимизации генерируемых LINQ2SQL запросов и для сборки вложенных запросов из других подзапросов по различным условиям пользуюсь самописным билдером выражений (условие поддерживает вложенные подзапросы из различных сущностей). Поэтому результирующие выражение в LINQ выглядят следующим образом:

Expression<Func<T, bool>> condition = ...
var linqexpr = dc.Entity.Where(condition)
;

2. использую собственные расширения LINQ2SQL для генерации SQL запросов, которых нет в синтаксисе LINQ-а, например, выборку иерархических объектов:

dc.Hierarchical.Descendants(t => t.Id, t => t.ParentId, ...) // производит выборку дерева элементов с полем ключа Id и полем ключа родителя ParentId;

Таким образом для меня использование синтаксиса LINQ накладывает большие ограничения на использование функциональности поставщика запросов.