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

Обновлен: November 2007

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

В этом пошаговом руководстве вы будете выполнять следующие задачи:

  • Создайте таблицу базы данных и добавьте в нее данные.

  • Создайте приложение Windows Forms.

  • Добавление файла LINQ to SQL в проект.

  • Создайте новые классы сущностей.

  • Конфигурируйте классы сущностей на использование наследования.

  • Выполните запрос унаследованного класса.

  • Отобразите данные на Windows Forms

Создайте таблицу в Наследовать из

Чтобы увидеть, как работает наследование, надо создать небольшую таблицу Person, использовать ее как базовый класс, и затем создать объект Employee, который наследует из него.

Для создания базовой таблицы, чтобы продемонстрировать наследование

  1. В Обозревателе серверов/Обозревателе баз данных щелкните правой кнопкой мыши по узлу Таблицы, затем щелкните по пункту Добавить новую таблицу.

    Bb384467.alert_note(ru-ru,VS.90).gifПримечание.

    Можно использовать базу данных Northwind или любую другую, к которой можно добавить таблицу.

  2. В Конструкторе таблиц добавьте в таблицу следующие столбцы:

    Имя столбца

    Тип данных

    Разрешить значения null

    Идентификатор

    int

    False

    Тип

    int

    True

    Имя

    nvarchar(200)

    False

    LastName

    nvarchar(200)

    False

    Менеджер

    int

    True

  3. Задайте столбец ID в качестве первичного ключа

  4. Сохраните таблицу и дайте ей имя Person.

Добавление данных в таблицу

Чтобы вы могли убедиться, что наследование конфигурировано правильно, в таблицу нужно ввести некоторые данные для каждого класса в наследовании единственной таблицы.

Для добавления данных в таблицу

  1. Откройте таблицу в окне просмотра данных. (Щелкните правой кнопкой мыши таблицу Person в Обозревателе серверов/Обозревателе базы данных и щелкните по пункту Показать таблицу данных.)

  2. Скопируйте в таблицу следующие данные. (Можно скопировать данные и вставить их в таблицу, выбрав целую строку в таблице Область результатов.)

    Идентификатор

    Тип

    Имя

    LastName

    Менеджер

    1

    1

    Anne

    Wallace

    NULL

    2

    1

    Carlos

    Grilo

    NULL

    3

    1

    Yael

    Peled

    NULL

    4

    2

    Gatis

    Ozolins

    1

    5

    2

    Andreas

    Hauser

    1

    6

    2

    Tiffany

    Phuvasate

    1

    7

    2

    Alexey

    Orekhov

    2

    8

    2

    Michał

    Poliszkiewicz

    2

    9

    2

    Tai

    Yee

    2

    10

    2

    Fabricio

    Noriega

    3

    11

    2

    Mindy

    Martin

    3

    12

    2

    Ken

    Kwok

    3

Создание нового проекта

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

Для создания нового приложения Windows

  1. В меню Файл создайте новый проект.

  2. Назовите проект InheritanceWalkthrough.

    Bb384467.alert_note(ru-ru,VS.90).gifПримечание.

    Конструктор Сред. Объектно-реляционный конструктор поддерживается в проектах Visual Basic и C#. Создайте новый проект на одном из этих языков.

  3. Выберите шаблон Приложение Windows Forms и нажмите кнопку OK. Дополнительные сведения см. в разделе Создание приложения для Windows.

  4. Создается проект InheritanceWalkthrough и добавляется в Обозреватель решений.

Добавление в проект файла LINQ to SQL Classes

Для добавления файла LINQ to SQL в проект

  1. В меню Проект выберите команду Добавить новый элемент.

  2. Выберите шаблон LINQ to SQL Classes и нажмите кнопку Добавить.

    DBML-файл добавляется в проект, и Сред. Объектно-реляционный конструктор открывается.

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

Сконфигурируйте наследование путем перетаскивания объекта Наследование из Панели элементов на область конструктора.

Чтобы создать наследование, выполните следующие действия

  1. В Обозревателе серверов/Обозревателе базы данных перейдите к созданной ранее таблице Person.

  2. Перетащите таблицу Person на область конструктора Сред. Объектно-реляционный конструктор.

  3. Перетащите вторую таблицу Person на Сред. Объектно-реляционный конструктор и дайте ей новое имя Employee.

  4. Удалите свойство Менеджер из объекта Person.

  5. Удалите свойства Type, ID, FirstName и LastName из объекта Employee. (Другими словами, удалите все свойства, кроме свойства Менеджер.)

  6. Из вкладки Реляционный конструктор объектовПанели элементов создайте Наследование между объектами Person и Employee. Чтобы выполнить это, щелкните по пункту Наследование в Панели элементов и отпустите кнопку мыши. Далее щелкните по объекту Employee и потом по объекту Person в Сред. Объектно-реляционный конструктор. Стрелка на линии наследования будет указывать на объект Person.

  7. Щелкните по линии Наследование на области конструктора.

  8. Задайте свойству Свойство дискриминатора значение Type.

  9. Задайте свойству Производное значение дискриминатора класса значение 2.

  10. Задайте свойству Базовое значение дискриминатора класса значение 1.

  11. Задайте свойству Наследование по умолчанию значение Person.

  12. Выполните построение проекта.

Выполнение запроса наследуемого класса и отображение данных на форме

Теперь добавьте некоторый код в форму, которая делает запрос на определенный класс в модели объекта.

Для создания запроса LINQ и отображения результатов на форме

  1. Перетащите ListBox на форму Form1.

  2. Дважды щелкните по форме, чтобы создать обработчик событий Form1_Load.

  3. В обработчик события Form1_Load добавьте следующий код:

    Dim dc As New DataClasses1DataContext
    Dim results = From emp In dc.Persons _
        Where TypeOf emp Is Employee _
        Select emp
    
    For Each Emp As Employee In results
        ListBox1.Items.Add(Emp.LastName)
    Next
    
    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

Выполните тестирование приложения

Запустите приложение и убедитесь, что записи, отображенные в списке представляют всех работников (записи, которые имеют значение 2 в столбце Type).

Тестирование приложения

  1. Нажмите клавишу F5.

  2. Убедитесь, что отображаются только записи со значением 2 в их столбце Type.

  3. Закройте форму. (В меню Отладка щелкните по пункту меню Прекратить отладку.)

См. также

Задачи

Как добавить классы LINQ to SQL в проект (реляционный конструктор объектов)

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

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

Как создать модель объектов на языке Visual Basic или C# (LINQ to SQL)

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

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

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

LINQ to SQL