Поделиться через


Запросы LINQ to SQL

Вы определяете запросы LINQ to SQL с помощью того же синтаксиса, что и в LINQ. Единственное различие заключается в том, что объекты, на которые ссылаются в запросах, сопоставляются с элементами в базе данных. Дополнительные сведения см. в разделе Введение в запросы LINQ (C#).

LINQ to SQL преобразует запросы, записываемые в эквивалентные SQL-запросы, и отправляет их на сервер для обработки. В частности, приложение использует API LINQ to SQL для запроса выполнения запросов. Затем поставщик LINQ to SQL преобразует запрос в текст SQL и делегирует выполнение поставщику ADO. Поставщик ADO возвращает результаты запроса в виде DataReader. Поставщик LINQ to SQL преобразует результаты ADO в коллекцию IQueryable пользовательских объектов.

Замечание

Большинство методов и операторов в встроенных типах .NET Framework имеют прямые переводы в SQL. То, что LINQ не может перевести, вызывает исключения во время выполнения. Дополнительные сведения см. в разделе SQL-CLR Сопоставление типов.

В следующей таблице показаны сходство и различия между элементами запроса LINQ и LINQ to SQL.

Товар Запрос LINQ Запрос LINQ к SQL
Тип возвращаемой локальной переменной, содержащей запрос (для запросов, возвращающих последовательности) Общий IEnumerable Общий IQueryable
Указание источника данных Использует конструкцию (From для Visual Basic или from для C#) Тот же
Фильтрация Использует Where/where условие Тот же
Группировка Использует Group…By/groupby условие Тот же
Выбор (проектирование) Использует Select/select условие Тот же
Отложенное и немедленное выполнение Общие сведения о запросах LINQ (C#) Тот же
Реализация операций объединения Использует Join/join условие Может использовать Join/join предложение, но более эффективно использует AssociationAttribute атрибут. Для получения дополнительной информации см. раздел «Запросы по связям».
Удаленное и локальное выполнение Дополнительные сведения см. в разделе "Удаленное и локальное выполнение".
Потоковая передача и кэширование запросов Неприменимо в сценарии локальной памяти

См. также