Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten film wideo i przewodnik krok po kroku zawierają wprowadzenie do programowania w usłudze Database First przy użyciu platformy Entity Framework. Funkcja Database First umożliwia odtworzenie modelu z istniejącej bazy danych. Model jest przechowywany w pliku EDMX (rozszerzenie edmx) i można go wyświetlać i edytować w Projektancie programu Entity Framework. Klasy, z którymi wchodzisz w interakcję w swojej aplikacji, są generowane automatycznie z pliku EDMX.
Obejrzyj film wideo
Ten film wideo zawiera wprowadzenie do programowania w usłudze Database First przy użyciu platformy Entity Framework. Funkcja Database First umożliwia odtworzenie modelu z istniejącej bazy danych. Model jest przechowywany w pliku EDMX (rozszerzenie edmx) i można go wyświetlać i edytować w Projektancie programu Entity Framework. Klasy, z którymi wchodzisz w interakcję w swojej aplikacji, są generowane automatycznie z pliku EDMX.
Prezentowane przez: Rowan Miller
Wymagania wstępne
Aby ukończyć ten przewodnik, musisz mieć zainstalowany co najmniej program Visual Studio 2010 lub Visual Studio 2012.
Jeśli używasz programu Visual Studio 2010, musisz również zainstalować pakiet NuGet .
1. Tworzenie istniejącej bazy danych
Zwykle, gdy kierujesz się na istniejącą bazę danych, jest ona już utworzona, ale w tym przewodniku musimy utworzyć bazę danych, aby uzyskać do niej dostęp.
Serwer bazy danych zainstalowany w programie Visual Studio różni się w zależności od zainstalowanej wersji programu Visual Studio:
- Jeśli używasz programu Visual Studio 2010, utworzysz bazę danych SQL Express.
- Jeśli używasz programu Visual Studio 2012, utworzysz bazę danych LocalDB .
Wygenerujmy bazę danych.
Otwórz program Visual Studio.
Widok —> Eksplorator serwera
Kliknij prawym przyciskiem myszy pozycję Połączenia danych —> Dodaj połączenie...
Jeśli wcześniej nie łączyłeś się z bazą danych za pomocą Eksploratora serwera, musisz wybrać Microsoft SQL Server jako źródło danych.
Połącz się z bazą danych LocalDB lub SQL Express, w zależności od zainstalowanej bazy danych, a następnie wprowadź wartość DatabaseFirst.Blogging jako nazwę bazy danych
Wybierz przycisk OK i zostanie wyświetlony monit o utworzenie nowej bazy danych, wybierz pozycję Tak
Nowa baza danych pojawi się teraz w Eksploratorze serwera, kliknij ją prawym przyciskiem myszy i wybierz pozycję Nowe zapytanie
Skopiuj następujący kod SQL do nowego zapytania, a następnie kliknij prawym przyciskiem myszy zapytanie i wybierz polecenie Wykonaj
CREATE TABLE [dbo].[Blogs] (
[BlogId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (200) NULL,
[Url] NVARCHAR (200) NULL,
CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);
CREATE TABLE [dbo].[Posts] (
[PostId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (200) NULL,
[Content] NTEXT NULL,
[BlogId] INT NOT NULL,
CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);
2. Tworzenie aplikacji
Aby zachować prostotę, utworzymy podstawową aplikację konsolową, która używa usługi Database First do wykonywania dostępu do danych:
- Otwórz program Visual Studio.
- Plik — Nowy —>> Projekt...
- Wybierz pozycję Windows z menu po lewej stronie i pozycję Aplikacja konsolowa
- Wprowadź DatabaseFirstSample jako nazwę
- Wybierz OK
3. Model inżyniera odwrotnego
Użyjemy projektanta platformy Entity Framework, który zostanie uwzględniony w programie Visual Studio, aby utworzyć nasz model.
Projekt —> dodaj nowy element...
Wybierz Dane z menu po lewej stronie, a następnie Model danych jednostki ADO.NET
Wprowadź BloggingModel jako nazwę i kliknij OK.
Spowoduje to uruchomienie Kreatora modelu danych jednostki
Wybierz pozycję Generuj z bazy danych i kliknij przycisk Dalej
Wybierz połączenie z bazą danych utworzoną w pierwszej sekcji, wprowadź ciąg BloggingContext jako nazwę parametrów połączenia, a następnie kliknij przycisk Dalej.
Kliknij pole wyboru obok pozycji "Tabele", aby zaimportować wszystkie tabele, a następnie kliknij przycisk Zakończ.
Po zakończeniu procesu inżynierii odwrotnej nowy model zostanie dodany do projektu i otwarty do obejrzenia w Projektancie platformy Entity Framework. Plik App.config został również dodany do projektu ze szczegółami połączenia dla bazy danych.
Dodatkowe kroki w programie Visual Studio 2010
Jeśli pracujesz w programie Visual Studio 2010, musisz wykonać kilka dodatkowych kroków, aby przeprowadzić uaktualnienie do najnowszej wersji programu Entity Framework. Uaktualnianie jest ważne, ponieważ zapewnia dostęp do ulepszonej powierzchni interfejsu API, która jest znacznie łatwiejsza w użyciu, a także najnowsze poprawki błędów.
Najpierw musimy pobrać najnowszą wersję programu Entity Framework z narzędzia NuGet.
- Projektu–> Zarządzaj pakietami NuGet...Jeśli nie masz opcji Zarządzaj pakietami NuGet... należy zainstalować najnowszą wersję pakietu NuGet
- Wybierz kartę Online
- Wybierz pakiet EntityFramework
- Kliknij pozycję Zainstaluj
Następnie musimy zamienić nasz model, aby wygenerować kod korzystający z interfejsu API DbContext, który został wprowadzony w nowszych wersjach platformy Entity Framework.
Kliknij prawym przyciskiem myszy puste miejsce modelu w projektancie EF i wybierz polecenie Dodaj element generowania kodu...
Wybierz pozycję Szablony online z menu po lewej stronie i wyszukaj pozycję DbContext
Wybierz generator DBContext EF 5.x dla języka C#, wprowadź ciąg BloggingModel jako nazwę i kliknij przycisk Dodaj
4. Odczytywanie i zapisywanie danych
Teraz, gdy mamy model, nadszedł czas, aby używać go do uzyskiwania dostępu do niektórych danych. Klasy, których będziemy używać do uzyskiwania dostępu do danych, są generowane automatycznie na podstawie pliku EDMX.
Ten zrzut ekranu pochodzi z programu Visual Studio 2012, jeśli używasz programu Visual Studio 2010, pliki BloggingModel.tt i BloggingModel.Context.tt będą bezpośrednio pod projektem, a nie zagnieżdżone w pliku EDMX.
Zaimplementuj metodę Main w Program.cs, jak pokazano poniżej. Ten kod tworzy nowe wystąpienie kontekstu, a następnie używa go do wstawienia nowego bloga. Następnie używa zapytania LINQ, aby pobrać wszystkie blogi z bazy danych uporządkowane alfabetycznie według tytułu.
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Teraz możesz uruchomić aplikację i przetestować ją.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Obsługa zmian bazy danych
Teraz nadszedł czas, aby wprowadzić pewne zmiany w schemacie bazy danych, kiedy wprowadzamy te zmiany, musimy również zaktualizować nasz model, aby odzwierciedlał te zmiany.
Pierwszym krokiem jest wprowadzenie pewnych zmian w schemacie bazy danych. Dodamy tabelę Users do schematu.
- Kliknij prawym przyciskiem myszy bazę danych DatabaseFirst.Blogging w Eksploratorze serwera i wybierz pozycję Nowe zapytanie
- Skopiuj następujący kod SQL do nowego zapytania, a następnie kliknij prawym przyciskiem myszy zapytanie i wybierz polecenie Wykonaj
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Po zaktualizowaniu schematu nadszedł czas, aby zaktualizować model przy użyciu tych zmian.
Kliknij prawym przyciskiem myszy puste miejsce modelu w projektancie EF i wybierz pozycję "Aktualizuj model z bazy danych...", spowoduje to uruchomienie Kreatora aktualizacji
Na karcie Dodawanie Kreatora aktualizacji zaznacz pole wyboru obok pozycji Tabele, co oznacza, że chcemy dodać wszystkie nowe tabele ze schematu. Karta Odświeżanie zawiera wszystkie istniejące tabele w modelu, które będą sprawdzane pod kątem zmian podczas aktualizacji. Na kartach Usuń są wyświetlane wszystkie tabele, które zostały usunięte ze schematu, a także zostaną usunięte z modelu w ramach aktualizacji. Informacje na tych dwóch kartach są automatycznie wykrywane i udostępniane tylko do celów informacyjnych. Nie można zmienić żadnych ustawień.
Kliknij przycisk Zakończ w Kreatorze aktualizacji
Model został zaktualizowany, aby uwzględniać nowy element Użytkownik, który jest mapowany na tabelę Users, którą dodaliśmy do bazy danych.
Podsumowanie
W tym przewodniku przyjrzeliśmy się programowi Database First, który pozwolił nam utworzyć model w projektancie EF Designer na podstawie istniejącej bazy danych. Następnie użyliśmy tego modelu do odczytywania i zapisywania danych z bazy danych. Na koniec zaktualizowaliśmy model w celu odzwierciedlenia zmian wprowadzonych w schemacie bazy danych.