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

Обновлен: November 2007

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

При наследовании единственной таблицы, имеется единственная таблица базы данных, которая содержит столбцы как для базового, так и для полученных классов. С реляционными данными столбец дискриминатора содержит значение, которое определяет, какому классу любая данная запись принадлежит. Например, рассмотрим таблицу Persons, которая содержит данные всех сотрудников компании. Некоторые лица являются служащими, а некоторые — менеджерами. Таблица Persons содержит столбец с именем Type, который имеет значение 1 для менеджеров и значения 2 для служащих. Столбец Type является столбцом дискриминатора. В этом сценарии можно создать подкласс служащих и заполнить класс только записями, которые имеют в столбце Type значение 2.

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

Свойства наследования

В следующей таблице содержится список свойств наследования и их описания.

Свойство

Описание

Свойство дискриминатора

Свойство (сопоставляемое столбцу), которое определяет какому классу принадлежит текущая запись.

Значение дискриминатора базового класса

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

Полученное значение дискриминатора класса

Значение (в свойстве, назначенном в качестве свойства дискриминатора), которое определяет, что запись относится к полученному классу.

Наследование по умолчанию

Класс, который должен заполниться, когда значение в свойстве, назначенном в качестве Свойства дискриминатора не совпадает либо со Значением дискриминатора для базового класса, либо со Значением дискриминатора для полученного класса.

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

Раздел

Описание

Как настроить наследование с использованием реляционного конструктора объектов

Описывает способы конфигурирования классов сущностей, использующих наследование одной таблицы при помощи Сред. Объектно-реляционный конструктор.

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

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

См. также

Задачи

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

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

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

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

Приступая к работе (LINQ to SQL)