Практическое занятие 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!