Средства LINQ to SQL в Visual Studio

 

Опубликовано: Апрель 2016

LINQ to SQL была первой технологии объектно реляционного сопоставления, выпускаемых корпорацией Майкрософт. Он хорошо работает в основных сценариях и продолжает поддерживаться в Visual Studio, но он больше не является активной разработке. Использование LINQ to SQL, при обслуживании с устаревшим приложением, оно уже используется, или в простых приложений, использующих SQL Server и не требуют сопоставления нескольких таблиц. В общем случае новые приложения должны использовать Entity Framework, когда необходим уровень объектно реляционного сопоставления.

В Visual Studio вы создания классов LINQ to SQL, представляющих таблицы SQL с помощью Реляционный конструктор объектов.

Реляционный конструктор объектов Имеет две различные области конструктора: область сущностей слева и область методов справа. Область сущностей является основной областью конструктора, отображающей классы сущностей, ассоциации и иерархии наследования. Область методов это область конструктора, отображающая DataContext методов, сопоставленных с хранимыми процедурами и функциями.

Object Relational Designer (Реляционный конструктор объектов) Предоставляет визуальную область конструктора для создания LINQ to SQL классов сущностей и ассоциаций (связей), основанных на объектах в базе данных. Другими словами, Реляционный конструктор объектов используется для создания модели объекта в приложении, которая сопоставляется с объектами в базе данных. Он также создает строго типизированный объект DataContext используемый для отправки и получения данных между классами сущностей и базой данных. Реляционный конструктор объектов Также предоставляет функциональные возможности для сопоставления хранимых процедур и функций DataContext методов для возврата данных и заполнения классов сущностей. Наконец, Реляционный конструктор объектов обеспечивает способность проектировать отношения наследования между классами сущностей.

Открытие реляционного конструктора объектов

Чтобы добавить LINQ модель entity SQL в проект, выберите & проекта #124; Добавление нового элемента и выберите LINQ to SQL Classes в списке элементов проекта:

Классы LINQ-SQL

Visual Studio создает DBML-файла и добавляет его в решение. Это файл сопоставления XML и файлы связанного кода.

Классы LINQ to SQL в обозревателе решений

При выборе DBML-файла, Visual Studio отображает область конструктора O/R, который позволяет визуально создавать модели. Ниже показан конструктор после перетащили таблицам Northwind Customers и Orders из обозревателя серверов. Обратите внимание, связи между таблицами.

Конструктор LINQ to SQL

Важно!

Реляционный конструктор объектов Представляет простой реляционный модуль сопоставления, поскольку он поддерживает только сопоставляющие отношения 1:1. Другими словами, класс объекта может иметь сопоставляющее отношение только 1:1 с таблицей базы данных или представлением. Сложные сопоставления, например, сопоставление класса сущностей нескольким таблицам, не поддерживается; Сложные сопоставления, использующих платформу Entity Framework. Кроме того, конструктор является односторонним генератором объектного кода. Это означает, что только изменения, которые вы осуществляете на области конструктора, отражаются в файле кода. Изменения, вносимые в файл кода вручную, не отражаются в Реляционный конструктор объектов. Любые изменения, которые вы вручную осуществляете в файле кода принимаются, когда конструктор сохраняется и генерируется код. Сведения о том, как добавить пользовательский код и распространить классы, сгенерированные Реляционный конструктор объектов, в разделе как: расширить код, созданный с помощью реляционного конструктора.

Создание и конфигурирование DataContext

После добавления LINQ to SQL Classes элемент в проект и откройте Реляционный конструктор объектов, пустая область конструктора представляет пустой DataContext готовая к настройке. DataContext настраивается с помощью сведений о соединении из первого элемента, который был перетащен в область конструктора... Таким образом DataContext настраивается с помощью сведения о подключении из первого перемещенного в область конструктора элемента. Дополнительные сведения о DataContext см. класс, методы DataContext (реляционный конструктор).

Создание классов сущностей, которые сопоставляются таблицам БД или представлениям

Можно создать классы сущностей, сопоставляемые с таблицами и представлениями, путем перетаскивания таблиц и представлений из обозревателя/обозревателя базы данных на Реляционный конструктор объектов. Как показано в предыдущем разделе DataContext настраивается с помощью сведений о соединении из первого элемента, который был перетащен в область конструктора. Если добавляется элемент, который использует другое подключение Реляционный конструктор объектов, можно изменить подключение для DataContext. Дополнительные сведения см. в разделе Практическое руководство: создание классов LINQ to SQL сопоставляется с таблицами и представлениями (реляционный конструктор).

Создание методов DataContext, которые вызывают сохраненные процедуры и функции

Можно создать DataContext методы, которые вызывают (сопоставляются) хранимые процедуры и функции путем перетаскивания их из обозревателя/обозревателя базы данных на Реляционный конструктор объектов. Хранимые процедуры и функции добавляются Реляционный конструктор объектов как методы DataContext.

Примечание

При перетаскивании хранимых процедур и функций из обозревателя серверов/обозревателя базы данных на Реляционный конструктор объектов, тип возвращаемого значения создаваемого DataContext метод отличается в зависимости от того, где завершилось перетаскивание элемента. Дополнительные сведения см. в разделе методы DataContext (реляционный конструктор).

Конфигурирование DataContext, чтобы использовать сохраненные процедуры для сохранения данных между классами сущностей и базой данных

Как упоминалось ранее, можно создать DataContext методы, которые вызывают сохраненные процедуры и функции. Кроме того, можно также назначать сохраненные процедуры, которые могут использоваться для поведения по умолчанию при LINQ to SQL среды выполнения, которая выполняет Вставки, Обновления и удаления. Дополнительные сведения см. в разделе Практическое руководство: назначение хранимых процедур для выполнения обновлений, вставок и удалений (реляционный конструктор).

Наследование и реляционный конструктор объектов

Подобно другим объектам, LINQ to SQL классы могут использовать наследование и выводиться из других классов. В базе данных, отношения наследования создаются несколькими способами. Реляционный конструктор объектов поддерживает концепцию наследования одиночных таблиц, так как именно она обычно осуществляется в реляционных системах. Дополнительные сведения см. в разделе Практическое руководство: Настройка наследования с использованием реляционного конструктора объектов.

Запросы LINQ to SQL

Классы сущностей, созданные Реляционный конструктор объектов предназначены для использования с LINQ (Language-Integrated Query). Дополнительные сведения см. в разделе как: запрос информации.

Отделение сгенерированного DataContext и кода класса сущностей в иные пространства имен Namespaces

Реляционный конструктор объектов Предоставляет пространство имен контекста и пространство имен сущности Свойства DataContext. Эти свойства определяют, какое пространство имен DataContext и кода классов сущностей генерируется в. По умолчанию эти свойства являются пустыми и DataContext классы сущностей генерируются в пространстве имен приложения. Чтобы сгенерировать код в пространство имен, отличное от пространства имен приложения, введите значение в пространство имен контекста или пространство имен сущности Свойства.

Содержание раздела

Методы DataContext (реляционный конструктор)
Объясняет, что DataContext методы являются и как их создавать.

Наследование классов данных (конструктор O/R)
Описывает концепцию наследования одиночных таблиц и способы ее реализации в Реляционный конструктор объектов.

Практическое руководство: Создание LINQ для классов SQL, сопоставленных с таблицами и представлениями (реляционный конструктор)
Описывает способы создания классов сущностей, которые сопоставляются с таблицами и представлениями в базе данных.

Практическое руководство: создание ассоциацию (связь) между классами LINQ to SQL (реляционный конструктор)
Описывает создание отношений между классами сущностей LINQ to SQL.

Практическое руководство: создание методов DataContext, сопоставленных с хранимыми процедурами и функциями (реляционный конструктор)
Описывает создание DataContext методов, выполняющих хранимые процедуры или функции при их вызове.

Практическое руководство: назначение хранимых процедур для выполнения обновлений, вставок и удалений (реляционный конструктор)
Описывает, как настроить DataContext Использование хранимых процедур при сохранении данных из сущности классы обратно в базу данных.

Практическое руководство: изменить тип возврата метода DataContext (реляционный конструктор)
Описывает, как задать тип возвращаемого значения DataContext метод был типом класса сущностей или автоматически генерируемым типом, созданные в реляционный конструктор объектов.

Практическое руководство: Добавление проверки к классам сущностей
Описывает способы генерации частичных методов, которые способны добавлять код в процессе изменений свойств и обновлений классов сущностей.

Практическое руководство: Включение и выключение (конструктор O/R) плюрализации
Описывает включение и отключение автоматического переименования классов, которые добавляются в Реляционный конструктор объектов.

Практическое руководство: Настройка наследования с использованием реляционного конструктора объектов
Описывает способы конфигурирования классов сущностей, используя наследование одиночной таблицы Реляционный конструктор объектов.

Практическое руководство: расширить код, созданный с помощью конструктора O/R
Описывает способы и места добавления кода, который не будет переписан, когда изменения в объектах на реляционном конструкторе объектов регенерируют код.

Пошаговое руководство: Создание классов LINQ to SQL с помощью наследование одной таблицы (конструктор O/R)
Предоставляет пошаговые инструкции по конфигурированию классов сущностей, используя наследование одиночной таблицы Реляционный конструктор объектов.

Пошаговое руководство: Настройка вставки, обновления и удаления в классах сущностей
Пошаговые инструкции по настройке DataContext Использование хранимых процедур при сохранении данных из сущности классы обратно в базу данных.

Справочные материалы

System.Linq

System.Data.Linq

См. также раздел

Данные средства Visual Studio для .NET
Часто задаваемые вопросы
LINQ to SQL
Доступ к данным в Visual Studio