- •Лабораторна робота №1
- •Додаток з Entity Framework. Підхід Model First
- •Створення запитів в Entity Framework
- •Взаємодія з даними. Підходи Code First
- •InitializeComponent();
- •Code-First до існуючої бази даних
- •Database First
- •Visiual Studio відобразить нам схему моделі. У моєму випадку в бд є тільки одна таблиця Persons, тому на схемі відображається тільки одна сутність Person:
- •InitializeComponent();
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 = "....
Решта функціоналу додатка - код форми буде тим же, що і в попередньому прикладі.
