Professional Documents
Culture Documents
Entity Framework - Migrations
Entity Framework - Migrations
M – Model
V – View
C – Controler
Model predstavlja podatke i ponasanje u sklopu svog domena I nisu zavisni od interfejsa.Na primer u
Domain Modelu imamo klase koje nisu usko vezane za user interfejs I mogu se koristiti za kreiranje
desktop aplikacija ili mobilnih aplikacija.
Router je zaduzen za izbor pravog kontrolera. Na primer posaljemo sledeci link vidly.com/movies, ruter
zna da taj HTTP zahtev treba poslati MoviesController-u.
Entity Framework je alat pomoću kojeg pristupamo bazi podataka, preciznije on je klasifikovan kao
Object / Relation Mapper(O/RM) mapira podatke iz relacione baze podataka u objekte nase aplikacije.
Entity Framework pruza klasu koja se naziva DBContext koja predstavlja prolaz do nase baze. DBContext
sadrzi jedan ili vise DBSet koji predstavlja tabelu u nasoj bazi. Koristimo LINQ da napravimo upit koji se
u Entity Frameworku prevodi u SQL upite u runtime-u. Otvara konekciju do baze podataka, cita podatke
mapira ih u objekte i dodaje ih u DBSet u nasem DBContext-u. Kada odlucimo da dodamo akcije u DBSet
kao sto su delete/modify/add, one se prevode u SQL i tako se izvrsavaju nad bazom.
Postoje dva workflow-a za korišćenje Entity Frameworka, tradicionalni nacin jeste da se prvo kreira baza
podataka i onda Entity Framework generiše odgovarajuće klase koje odgovaraju tabelama u bazi. Ovaj
način se naziva Database First(DB First). Drugi način jeste suprotna putanja, odnosno počinjemo sa
Domain Klasama pomoću kojih će Entity Framework generisati tabele u bazi.
Code-first Migrations
U ovom slučaju krećemo sa kodom, svaki put kada modifikujemo nas domain model ili izmenimo neki od
postojećih, kreiramo migraciju i pokrenemo ga nad bazom podataka. Da bismo to omogućili moramo
uraditi sledeće:
Tools->NuGet package Manager ->Package Manager Console
Migracije se moraju prvo omogućiti tako što u konzoli upisemo enable-migrations
U Solution Expolreru dobijamo folder Migration gde će biti smeštene sve naše migracije. Pokrećemo
migraciju tako što u konzoli upisemo add-migration ime migracije(promenu koju smo izvrsili) , prva
migracija se može zvati InitialModel.