Создание LINQ для классов SQL с помощью конструктора O/R

Обновлен: Ноябрь 2007

Для сопоставления классам LINQ to SQL таблиц в базе данных можно использовать Реляционный конструктор объектов. Эти сопоставленные классы также называются классами сущностей. Свойства класса сущностей сопоставляются со столбцами таблицы. Данные при этом можно привязать к элементам управления в формах Windows Forms. Дополнительные сведения о LINQ to SQL см. в разделе Использование LINQ в C#.

Обязательные компоненты

Открытие O/R-конструктора

Открытие O/R-конструктора

  1. В меню Файл выберите команду Создать проект.

  2. В диалоговом окне Создание проекта выберите Приложение Windows Forms, назовите его LINQToSQLSample и нажмите кнопку ОК.

    Откроется новый проект Windows Forms.

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

  4. Выберите шаблон Классы LINQ to SQL и введите NorthwindSample.dbml в поле Имя.

  5. Нажмите кнопку Добавить.

    Пустой файл классов LINQ to SQL (Northwind.dbml) добавится в проект и откроется конструктор Сред. Объектно-реляционный конструктор.

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

Щелкните основную область конструктора и убедитесь, что она называется NorthwindSampleDataContext в окне Свойства. Классы сущностей создаются путем перетаскивания таблиц базы данных из обозревателя баз данных на поверхность Сред. Объектно-реляционный конструктор. Но сначала необходимо создать соединение с базой данных. Этот процесс похож на описанный в Практическое руководство. Подключение к базе данных (C#), за исключением того, что здесь используется база данных SQL Server Express.

Подключение к учебной базе данных "Northwind".

  1. В меню Вид выберите Другие окна, затем щелкните Обозреватель баз данных.

    Откроется обозреватель баз данных.

  2. Нажмите кнопку Подключиться к базе данных.

    Откроется диалоговое окно Добавление подключения.

  3. В диалоговом окне Добавление подключения убедитесь, что параметр Источник данных имеет значение Файл базы данных Microsoft SQL Server.

  4. Нажмите кнопку Обзор и выберите базу данных Northwind.mdf.

  5. Щелкните Проверить подключение, чтобы убедиться, что подключение выполнено успешно.

  6. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Добавление подключения.

Создание классов сущностей

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

Создание классов сущностей

  1. В обозревателе баз данных разверните узел Northwind.mdf, а затем разверните узел Таблицы.

  2. Перетащите таблицу Customers из обозревателя баз данных на поверхность Сред. Объектно-реляционный конструктор. При выводе запроса на копирование файла данных в проект нажмите кнопку Да.

    Будет создан класс сущностей с именем Customer. Он имеет свойства, соответствующие столбцам в таблице Customers.

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

    Класс сущностей назван Customer вместо Customers. Такой метод переименования называется плюрализацией. Он может быть включен или выключен в диалоговом окне Параметры. Дополнительные сведения см. в разделах Диалоговое окно "Параметры" (Visual Studio) и Как отключить и включить преобразование во множественную форму (реляционный конструктор объектов).

  3. Перетащите таблицу Orders из обозревателя баз данных на поверхность Сред. Объектно-реляционный конструктор.

    Будет создан класс сущностей с именем Order. Обратите внимание, что класс Order связан (ассоциирован) с классом сущности Customer. Свойства класса Order соответствуют столбцам в таблице Orders.

Теперь, создав классы сущностей, можно добавить их в окно Источники данных, запустив мастер настройки источника данных.

Добавления класса сущности в качестве источника данных объекта в окно источников данных

  1. В меню Построение выберите команду Построить решение.

  2. В меню Данные выберите команду Показать источники данных.

  3. В окне Источники данных нажмите кнопку Добавить новый источник данных.

  4. На странице Выбор типа источника данных выберите Объект и нажмите кнопку Далее.

  5. Разверните узел LINQToSQLSample и выберите класс Customer.

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

    Если класс Customer недоступен, нажмите кнопку Отмена, постройте проект и запустите мастер снова.

  6. Нажмите кнопку Готово для создания источника данных и добавления класса сущности Customer в окно Источники данных.

Привязка элементов управления в формах Windows Forms к классам сущностей

Элементы управления, которые связаны данными с классами сущностей, можно добавлять в формы Windows Forms путем перетаскивания таблиц или полей из окна Источников данных в форму.

Добавление элементов управления, связанных с классами сущностей

  1. Правой клавишей мыши щелкните элемент Form1 в обозревателе решений и выберите команду Открыть в конструкторе.

  2. В окне Источники данных разверните узел Customer.

  3. Щелкните стрелку раскрывающегося списка рядом с CompanyName и затем щелкните элемент Метка.

  4. Перетащите CompanyName в форму.

  5. Перетащите Orders из окна Источники данных в форму Form1. Поместите его в списке под элементом CompanyName.

  6. Правой клавишей мыши щелкните Form1 в обозревателе решений и выберите команду Просмотреть код.

  7. Добавьте следующий код в форму в верхней части класса Form вне границ методов.

    private NorthwindSampleDataContext northwindSampleDataContext1
        = new NorthwindSampleDataContext();
    
  8. Создайте обработчик событий для события Form_Load и добавьте в обработчик следующий код.

    customerBindingSource.DataSource
        = northwindSampleDataContext1.Customers;
    
  9. Нажмите клавишу F5 для выполнения кода.

  10. В открывшейся форме нажмите кнопку bindingNavigatorMoveNextItem для просмотра компаний и убедитесь, что ordersDataGridView обновилась и отображает заказы выбранного клиента.

Сохранение изменений

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

Активация кнопки сохранения

  1. Нажмите кнопку Сохранить в bindingNavigator. (Кнопка со значком дискеты.)

  2. В окне Свойства задайте для свойства Включено значение True.

  3. Дважды щелкните кнопку сохранения, чтобы создать обработчик событий и переключиться в редактор кода.

  4. Добавьте в обработчик событий для кнопки Сохранить следующий код.

    northwindSampleDataContext1.SubmitChanges();
    
  5. Нажмите клавишу F5 для выполнения кода.

  6. Измените значение в одном из полей Дата отправки и нажмите клавишу TAB для фиксации изменений.

  7. Нажмите кнопку Сохранить.

  8. Закройте форму

  9. Нажмите клавишу F5 и убедитесь, что внесенные изменения были сохранены.

См. также

Задачи

Практическое руководство. Подключение к базе данных (C#)

Практическое руководство. Отображение связанных данных в форме

Практическое руководство. Привязка данных в запросах LINQ

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

Использование LINQ в C#

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

Подключение к данным (Visual C#)