Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота1_2014.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Code-First до існуючої бази даних

Даний підхід також представляє спосіб взаємодії Code First, проте база даних не генерується автоматично, а створюється самим розробником. Іноді програмісти називають даний підхід Code Second. Даний підхід зручний, коли у нас вже є база даних. Подивимося на прикладі.

Після створення нового проекту створимо тестову базу даних. У Visual Studio виберемо в меню пункт View-> Other Windows-> Database Explorer. У цьому вікні Database Explorer підключимося до нової бази даних, вибравши Connect to Database.

У вікні створення підключення як сервер виберемо (localdb) \ v11.0. У даному випадку ми вибираємо движок localdb для роботи з MS SQL Server, який призначений спеціально для цілей розробки. Хоча ми також могли вибрати, як в попередній темі повноцінний SQL Server Express.

А як ім'я бази даних введемо PeopleDB:

І якщо база даних не існує, нам відобразиться вікно з підтвердженням її створення:

Натиснемо 'Так'. І після цього у вікні Database Explorer відобразиться створена база даних:

Вона ще порожня, тому додамо в неї таблицю. Натиснемо правою кнопкою миші на вузол Tables і в контекстному меню виберемо Add New Table. Потім в центральному полі в режимі дизайнера створимо таке визначення таблиці:

У полі T-SQL (або графічно) визначимо структуру і ім'я таблиці, типи стовпців і після цього натиснемо у верхньому лівому куті на кнопку Update.

У новому вікні нам буде видана деяка інформація про зміни, вироблених в БД:

Натиснемо на кнопку Update Database. І після цього буде створена таблиця People. Оновивши вікно Database Explorer і відкривши вузол Tables, ви зможете побачити нову таблицю People.

База даних готова. Тепер нам треба додати підключення в файл конфігурації програми. У Solution Explorer знайдемо файл App.config і відкриємо нього. Перед закриває тегом </ configuration> додамо нову секцію:

<connectionStrings>

<add name="PeopleDB" connectionString="data source=(localdb)\v11.0;Initial Catalog=PeopleDb;Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework"

providerName="System.Data.SqlClient"/>

</connectionStrings>

Тепер визначимо класи моделі даних і контексту. Модель Person:

class Person

{

public int Id { get; set; }

public string Name { get; set; }

public int Age { get; set; }

}

Клас контексту:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data.Entity;

namespace Code_FirstBD

{

class PeopleContext: DbContext

{

public PeopleContext ():

base ("PeopleDB")

{}

public DbSet <Person> People { get; set; }

}

}

У конструкторі контексту даних ми передаємо в конструктор базового класу ім'я рядка підключення з файлу конфігурації App.config. Так як ми визначили там рядок підключення PeopleDB (<add name = "PeopleDB"), то саме це значення і використовується в конструкторі.

Однак як варіант ми могли не використовувати конструктор в класі контексту даних, а визначити як ім'я рядка підключення назва цього класу, наприклад: <add name = "PeopleContext" connectionString = "....

Решта функціоналу додатка - код форми буде тим же, що і в попередньому прикладі.