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

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

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

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

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

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

Свойство

Описание

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

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

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

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

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

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

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

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

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

Раздел

Описание

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

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

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

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

См. также

Задачи

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

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

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

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

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