Общие сведения о реляционном конструкторе объектов

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

Реляционный конструктор объектов генерирует DBML-файл, который обеспечивает сопоставление между классами LINQ to SQL и объектами базы данных. Реляционный конструктор объектов также генерирует DataContext и классы сущностей.

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

Примечание

В настоящее время конструктор Реляционный конструктор объектов поддерживает только базы данных SQL Server 2000, SQL Server 2005, SQL Server 2008 и SQL Server Express.Хотя реляционный конструктор объектов не поддерживает SQL Server Compact 3.5, его поддерживает LINQ to SQL.Дополнительные сведения см. в разделе SQL Server Compact 3.5 и LINQ to SQL. О том, как получить SQL Server Express, см. в подразделе о получении SQL Server Express раздела Практическое руководство. Установка образцов баз данных.

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

Можно открыть Реляционный конструктор объектов, добавив в проект элемент Классы LINQ to SQL. Подробные сведения см. в разделе Как добавить классы LINQ to SQL в проект (реляционный конструктор объектов).

Важно!

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

Создание и конфигурирование 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. Дополнительные сведения см. в разделе Как выполнять запросы о сведениях (LINQ to SQL).

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

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

См. также

Задачи

Пошаговое руководство. Создание классов LINQ to SQL (реляционный конструктор объектов)

Как назначить хранимые процедуры для выполнения обновлений, вставок и удалений (реляционный конструктор объектов)

Ссылки

Общее руководство программирования на LINQ

Основные понятия

Новые возможности разработки приложений для работы с данными

Другие ресурсы

LINQ to SQL

LINQ to ADO.NET

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