Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы определяете запросы 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 атрибут. Для получения дополнительной информации см. раздел «Запросы по связям». |
| Удаленное и локальное выполнение | Дополнительные сведения см. в разделе "Удаленное и локальное выполнение". | |
| Потоковая передача и кэширование запросов | Неприменимо в сценарии локальной памяти |