Практическое занятие 9. Применение технологии ADO.NET Entity Framework
ADO . NET Entity Framework ( EF ) – объектно-ориентированная технология доступа к данным, являющееся object - relational mapping (ORM) решением для .NET Framework от Microsoft.
Платформа ADO.NET Entity Framework позволяет разработчикам создавать приложения для доступа к данным, работающие с концептуальной моделью приложения, а не напрямую с реляционной схемой хранения. Ее целью является уменьшение объема кода и усилий по обслуживанию приложений, ориентированных на обработку данных.
В данном практическом занятии рассматривается подходы Code-First, при использовании которого сначала определяется модель в коде, а затем, на ее основе создается (или модифицируется) база данных и Database first, при котором средства Visual Studio на основе созданной ранее базы данных формируют ее модель – Entity Data Model (EDM).
Платформа Entity Framework поддерживает модель EDM для определения данных на концептуальном уровне. При использовании конструктора ADO.NET EDM Designer концептуальная модель, модель хранения и сведения о сопоставлениях содержатся в файле EDMX.
Упражнение 1. Использование Code-First
В этом упражнении рассматривается подход Code-First, при использовании которого сначала определяется модель в коде, а затем, на ее основе создается (или модифицируется) база данных. Вы создадите две таблицы, описывающие данные заказчика и его заказы. Отношение между этими таблицами будет “один ко многим” (one-to-many).
Создание приложения
1. Создайте новое WinForms-приложение (назовите его CustomerManager).
|
|
2. Файлу формы присвойте имя CustomerViewer.cs.
3. Настройте свойства формы: значение свойства ( Name) – CustomerViewer, значение свойства Text – Customer Viewer.
4. Реализуйте интерфейс приложения, изображенный на рисунке.
Интерфейс содержит следующие элементы:
· ComboBox (имя элемента customerList) для отображения заказчиков в виде списка
· ListBox (orderlistBox) для отображения списка заказов, для свойства SelectedMode укажите значение MultiSimple – возможность выбирать несколько элементов списка
· Элементы TextBox для ввода имени, фамилии, электронного адреса и возраста (в коде textBoxname, textBoxlastname, textBoxmail и textBoxage соответственно)
· Пять кнопок: для добавления фото заказчика (buttonFile), для добавления нового заказчика в базу (buttonAdd), для вывода информации из базы данных (buttonOut), для редактирования данных о заказчике (buttonEdit) и для удаления заказчика из базы данных (buttonDel)
· Два элемента RadioButton, размещенный в контейнере GroupBox, элементы позволят выводить данные о заказчиках (CustomerradioButton) или заказах (OrderradioButton)
· Элемент TextBox (textBoxCustomer) для вывода данных о заказчике и слева от него текстовая метка Id (labelid) для отображения уникального идентификатора заказчика
· Элемент DataGridView (GridView) для отображения данных, свойству Dock укажите значение Botton
|
|
5. Постройте приложение.
Создание модели данных
1. Добавьте в решение проект, имеющий шаблон библиотеки классов (Class Library) и назовите его CodeFirst.
2. Переименуйте файл класса Class1.cs, в файл Model.cs, в котором будет описана модель данных.
3. Добавьте ссылку на проект CodeFirst в базовом проекте приложения. Для этого щелкните правой кнопкой мыши по вкладке References (Ссылки) в окне Solution Explorer базового проекта и выберите пункт Add Reference. В открывшемся диалоговом окне перейдите на вкладку Solution и выберите проект CodeFirst.
4. Добавьте в файл Model.cs два класса, описывающих заказчика и его товары:
ü Обратите внимание, что в классе Customer указано только поле имени, а на форме добавлено два текстовых поля для имени и фамилии, это правильно, так как в последствии модель будет изменена.
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
public byte[] Photo { get; set; }
public override string ToString()
{
string s = Name + ", электронный адрес: " + Email;
return s;
}
// Ссылка на заказы
public virtual List<Order> Orders { get; set; }
public Customer()
{
Orders = new List<Order>();
}
}
public class Order
{
public int OrderId { get; set; }
public string ProductName { get; set; }
|
|
public string Description { get; set; }
public int Quantity { get; set; }
public DateTime PurchaseDate { get; set; }
// Ссылка на покупателя
public Customer Customer { get; set; }
public override string ToString()
{
string s = ProductName + " " + Quantity + "шт., дата: " + PurchaseDate;
return s;
}
}
EF при работе с Code First требует определения ключа элемента для создания первичного ключа в таблице в БД. По умолчанию при генерации БД EF в качестве первичных ключей будет рассматривать свойства с именами Id или [Имя_класса]Id (т. е. CustomerId).
Код модели определяет данные заказчика и его покупки. Для каждого заказчика указывается имя, электронный адрес, возраст и фотография профиля. Идентификатор используется в качестве первичного ключа таблицы Customer. Кроме того, в этом классе есть ссылка на коллекцию покупок. Эта ссылка выражена в виде виртуального свойства и имеет тип обобщенной коллекции List<T>.
Класс Order содержит идентификатор заказа, который позволяет уникальным образом распознать каждый заказ в таблице. Кроме того, этот класс содержит свойства, описывающие название товара, его количество, описание и дату заказа. Также здесь указана ссылка на покупателя в виде свойства Customer.
Дата добавления: 2019-02-26; просмотров: 465; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!