Общие сведения о реляционном конструкторе объектов
Реляционный конструктор объектов (Реляционный конструктор объектов) предоставляет визуальную область конструктора для создания классов сущностей и ассоциаций (отношений) 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
Основные понятия
Новые возможности разработки приложений для работы с данными