Entity Framework - pierwsze podejście do bazy danych
W tym rozdziale dowiemy się, jak tworzyć model danych encji z podejściem Database First.
Podejście Database First zapewnia alternatywę dla podejść Code First i Model First do Entity Data Model. Tworzy kody modeli (klasy, właściwości, DbContext itp.) Z bazy danych w projekcie, a te klasy stają się łącznikiem między bazą danych a kontrolerem.
Baza danych First Approach tworzy strukturę encji z istniejącej bazy danych. Używamy wszystkich innych funkcjonalności, takich jak synchronizacja modelu / bazy danych i generowanie kodu, w taki sam sposób, w jaki wykorzystaliśmy je w podejściu Model First.
Weźmy prosty przykład. Mamy już bazę danych, która zawiera 3 tabele, jak pokazano na poniższym obrazku.
Step 1 - Stwórzmy nowy projekt konsoli o nazwie DatabaseFirstDemo.
Step 2 - Aby utworzyć model, najpierw kliknij prawym przyciskiem myszy projekt konsoli w eksploratorze rozwiązań i wybierz opcję Dodaj → Nowe elementy…
Step 3 - Wybierz model danych jednostki ADO.NET ze środkowego panelu i wprowadź nazwę DatabaseFirstModel w polu Nazwa.
Step 4 - Kliknij przycisk Dodaj, co spowoduje uruchomienie okna dialogowego Entity Data Model Wizard.
Step 5 - Wybierz EF Designer z bazy danych i kliknij przycisk Dalej.
Step 6 - Wybierz istniejącą bazę danych i kliknij Dalej.
Step 7 - Wybierz Entity Framework 6.xi kliknij Dalej.
Step 8 - Zaznacz wszystkie widoki tabel i procedurę składowaną, które chcesz dołączyć, i kliknij przycisk Zakończ.
Zobaczysz, że model jednostki i klasy POCO są generowane z bazy danych.
Pobierzmy teraz wszystkich uczniów z bazy danych, pisząc następujący kod w pliku program.cs.
using System;
using System.Linq;
namespace DatabaseFirstDemo {
class Program {
static void Main(string[] args) {
using (var db = new UniContextEntities()) {
var query = from b in db.Students
orderby b.FirstMidName select b;
Console.WriteLine("All All student in the database:");
foreach (var item in query) {
Console.WriteLine(item.FirstMidName +" "+ item.LastName);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
}
Po wykonaniu powyższego programu otrzymasz następujący wynik -
All student in the database:
Ali Khan
Arturo finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...
Po uruchomieniu powyższego programu zobaczysz nazwiska wszystkich uczniów, które zostały wcześniej wprowadzone do bazy danych.
Zalecamy wykonanie powyższego przykładu krok po kroku w celu lepszego zrozumienia.