6.3 Урок: Использование сущности Entity Framework в качестве источника данных Windows Forms
В данном руководстве описано, как создать источник данных Windows Forms из сущности в модели данных Entity с помощью Microsoft Visual Studio. Этапы следующие:
Для выполнения шагов этого руководства сначала установите пример базы данных world, который можно загрузить со страницы документации MySQL. Также на этой странице вы найдете подробную информацию об установке базы данных.
Создание нового приложения Windows Forms
Первый шаг — создание нового приложения Windows Forms.
В Visual Studio выберите , и затем из главного меню.
Выберите шаблон Приложение Windows Forms. Нажмите . Решение создано.
Для получения последней сборки Entity Framework для MySQL загрузите пакет NuGet.
Добавление модели данных Entity
Для добавления модели данных Entity в ваше решение выполните следующие действия:
-
В обозревателе решений щелкните правой кнопкой мыши приложение и выберите , а затем . Из установленных шаблонов Visual Studio выберите Модель данных Entity ADO.NET (см. следующую фигуру). Нажмите .
Рисунок 6.11 Добавление модели данных Entity
Теперь вы увидите мастер создания модели данных Entity. Вы будете использовать мастер для генерации модели данных Entity из примера базы данных
world. Выберите значок Проектировщик Entity из базы данных (или Генерировать из базы данных в более старых версиях Visual Studio). Нажмите .-
Теперь вы можете выбрать соединение
localhost(world), которое вы создали ранее с базой данных. Выберите следующие пункты:Да, включить конфиденциальные данные в строку подключения.
-
Сохранить настройки подключения к сущностям в
App.configкак:worldEntities
Если вы этого еще не сделали, вы можете создать новое соединение в данный момент, нажав (см. следующую фигуру).
Рисунок 6.12 Мастер создания модели данных Entity — Подключение
Запишите настройки подключения к сущностям для использования в
App.Config, так как они понадобятся позже для написания необходимого кода управления. Нажмите . -
Мастер создания модели данных Entity подключается к базе данных.
Как показано на следующей фигуре, вам будет представлена древовидная структура базы данных. Отсюда вы можете выбрать объект, который хотите включить в свою модель. Если вы также создали представления и хранимые процедуры, эти элементы будут отображаться вместе со всеми таблицами. В этом примере вам нужно выбрать только таблицы. Нажмите , чтобы создать модель и выйти из мастера.
Рисунок 6.13 Мастер создания модели данных Entity — Объекты и настройки
Visual Studio сгенерирует модель со тремя таблицами (city, country и countrylanguage) и отобразит её, как показано на следующей фигуре.
Рисунок 6.14 Диаграмма модели данных Entity
В главном меню Visual Studio выберите , а затем , чтобы убедиться, что все скомпилировано правильно до этого момента.
Добавление нового источника данных
Теперь вы добавите новый источник данных в свой проект и увидите, как он может использоваться для чтения и записи в базу данных.
В главном меню Visual Studio выберите , а затем . Вам будет представлен мастер настройки источника данных.
Выберите значок Объект. Нажмите .
-
Выберите объект для привязки. Разверните дерево, как показано на следующей фигуре.
В этом руководстве вы выберете таблицу city. После выбора таблицы city нажмите .
Рисунок 6.15 Мастер настройки источника данных
Мастер подтвердит, что объект city должен быть добавлен. Нажмите .
Объект city теперь появится в панели Источники данных. Если панель Источники данных не отображается, выберите , а затем в главном меню Visual Studio. После этого прикреплённая панель будет отображена.
Использование источника данных в форме Windows
Этот шаг описывает, как использовать источник данных в форме Windows.
-
В панели Источники данных выберите только что созданный источник данных и перетащите его на конструктор формы. По умолчанию объект источника данных будет добавлен как элемент управления Data Grid View, как показано на следующей фигуре.
ПримечаниеЭлемент управления Data Grid View привязан к
cityBindingSource, а элемент управления Navigator привязан кcityBindingNavigator.Рисунок 6.16 Конструктор формы данных
Сохраните и перестройте решение перед продолжением.
Добавление кода для заполнения Data Grid View
Теперь вы готовы добавить код, чтобы гарантировать, что элемент управления Data Grid View будет заполнен данными из таблицы базы данных city.
Дважды щелкните форму, чтобы открыть её код.
-
Добавьте следующий код для создания объекта модели данных Entity
EntityContainerи извлечения данных из базы данных для заполнения элемента управления.using System.Windows.Forms; namespace WindowsFormsApplication4 { public partial class Form1 : Form { worldEntities we; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { we = new worldEntities(); cityBindingSource.DataSource = we.city.ToList(); } } } Сохраните и перестройте решение.
-
Запустите решение. Убедитесь, что сетка заполнена (пример в следующей фигуре) и что вы можете перемещаться по базе данных.
Рисунок 6.17 Заполненный элемент управления сеткой
Добавление кода для сохранения изменений в базе данных
Этот шаг описывает, как добавить код, который позволяет сохранять изменения в базе данных.
Компонент Binding source гарантирует, что изменения, внесенные в элемент управления Data Grid View, также вносятся в сущности, связанные с ним. Однако эти данные необходимо сохранить обратно из сущностей в саму базу данных. Этого можно добиться, включив кнопку «Сохранить» в элементе управления Navigator и добавив немного кода.
В конструкторе формы щелкните значок сохранения на панели инструментов формы и убедитесь, что свойство Enabled установлено в значение
True.Дважды щелкните значок сохранения на панели инструментов формы, чтобы отобразить его код.
-
Добавьте следующий (или аналогичный) код, чтобы гарантировать, что данные сохраняются в базе данных при нажатии пользователем кнопки «Сохранить» в приложении.
public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { we = new worldEntities(); cityBindingSource.DataSource = we.city.ToList(); } private void cityBindingNavigatorSaveItem_Click(object sender, EventArgs e) { we.SaveChanges(); } } } После добавления кода сохраните решение и перестройте его. Запустите приложение и проверьте, что внесенные в таблицу изменения сохраняются.
© 2025 Oracle
Licensed under the GPLv2 License.