Упражнение 2. Использование наследования при создании модели



В этом упражнении вы добавите в модель новый класс, наследуемый от уже существующего класса и таким образом, измените структуру базы данных.

Генерация общей таблицы

В этой части упражнения на основе двух классов базового и производного будет сгенерирована одна таблица со специальным столбцом, позволяющим различить базовую и производную сущности.

1. Добавьте в файл модели новый класс, определяющий, например, важные заказы:

public class VipOrder: Order

{

   public string status { get; set; }

}

2. В класс контекста базы данных добавьте свойство с именем новой таблицы:

public DbSet<VipOrder> VipOrders { get; set; }

3. В обработчике события загрузки формы сразу после создания двух заказов создайте особый заказ и добавьте его в базу данных:

context.VipOrders.Add(new VipOrder { ProductName = "Авто", Quantity = 101, PurchaseDate = DateTime.Parse("10.01.2016"), status = "Высокий" });

4. Поскольку структура базы данных изменилась, то в конструкторе формы главного приложения после создания контекста вызовите метод SetInitializer() класса Database и передайте ему экземпляр объекта DropCreateDatabaseIfModelChanges, который указывает Code-First, что при изменении модели данных, базу данных нужно будет удалить и воссоздать с новой структурой:

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<SampleContext>());

5. Для возможности просмотра именно особых заказов добавьте на форму в группирующий элемент новый элемент выбора RadioButton (ViporderradioButton) и добавьте в метод Output() его проверку и изменение в зависимости от его значения элемента GridView:

       else if (this.ViporderradioButton.Checked == true)

               GridView.DataSource = context.VipOrders.ToList();

6. Постройте приложение. Раскройте в окне Server Explorer построенную базу и проверьте, что созданы две таблицы Customers и Orders (для хранения и обычных и особых заказов используется одна таблица).

7. Откройте определение таблицы Orders и проверьте, что в нее добавлены поле status для особых заказов и поле Discriminator для отличия двух сущностей (маркер отличий).

8. Запустите приложение. Так как создается новая база данных, то заказчиков нет. Отобразите в сетке заказы с переключателем Orders, обратите внимание, что отобразятся все заказы, отобразите данные с переключателем VipOrders – должны отобразится только особые заказы. Закройте приложение.

9. В окне Server Explorer откройте таблицу Orders в режиме отображения данных. Обратите внимание, что в столбце Discriminator указаны типы заказов, т.е. к какой сущности относится данная запись в таблице, а для типа VipOrder заполнено поле status.

Для каждого класса отдельная таблица

В этой части упражнения на основе двух классов базового и производного будет сгенерированы две таблицы – по одной на каждую сущность.

1. Для использования этого подхода перед классом VipOrder укажите атрибут Table с указанием имени таблицы VipOrders:

[Table("VipOrders")]

2. Постройте и запустите приложение. Функциональность приложения не изменилась. Закройте приложение.

3. Раскройте в окне Server Explorer построенную базу и проверьте, что созданы три таблицы Customers, Orders и VipOrder s (для хранения и обычных и особых заказов используется своя таблица).

4. Проверьте структуру таблицы Orders и обратите внимание, что в этом случае нет поля Discriminator, а в таблице VipOrder s указано поле status.

Упражнение 3. Построение EDM для работы с базой данных

В этом упражнении расматривается подход Database first, при котором на основе созданной ранее базы данных (база данных School) формируют ее модель – Entity Data Model (EDM). С помощью конструктора ADO.NET EDM Designer вы создадите концептуальную модель, модель хранения и сведения о сопоставлениях, которые собраны в файле EDMX.

Вы разработаете новое приложение Windows Forms, в котором сформируеете запросы для доступа к данным в модели, выполните привязку результатов запросов к элементам управления для их отображения, а также реализуете возможность обновления в объектах и сохранение внесенных изменений в базу данных.


Дата добавления: 2019-02-26; просмотров: 163; Мы поможем в написании вашей работы!

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






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