Freigeben über


Verwenden von Code First-Migrationen zum Seeden der Datenbank

Abgeschlossenes Projekt herunterladen

In diesem Abschnitt verwenden Sie Code First-Migrationen in EF, um die Datenbank mit Testdaten zu seeden.

Wählen Sie im Menü Extrasdie Option NuGet-Paket-Manager und dann Paket-Manager-Konsole aus. Geben Sie im Fenster Paket-Manager-Konsole den folgenden Befehl ein:

Enable-Migrations

Dieser Befehl fügt Ihrem Projekt einen Ordner mit dem Namen Migrationen sowie eine Codedatei namens Configuration.cs im Ordner Migration hinzu.

Screenshot des Projektmappen-Explorer, der die Ordnerhierarchie mit blau hervorgehobener Datei

Öffnen Sie die Datei Configuration.cs. Fügen Sie die folgende using-Anweisung hinzu.

using BookService.Models;

Fügen Sie dann der Configuration.Seed-Methode den folgenden Code hinzu:

protected override void Seed(BookService.Models.BookServiceContext context)
{
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Jane Austen" },
        new Author() { Id = 2, Name = "Charles Dickens" },
        new Author() { Id = 3, Name = "Miguel de Cervantes" }
        );

    context.Books.AddOrUpdate(x => x.Id,
        new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1, 
            Price = 9.99M, Genre = "Comedy of manners" },
        new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1, 
            Price = 12.95M, Genre = "Gothic parody" },
        new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2, 
            Price = 15, Genre = "Bildungsroman" },
        new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3, 
            Price = 8.95M, Genre = "Picaresque" }
        );
}

Geben Sie im Fenster Paket-Manager-Konsole die folgenden Befehle ein:

Add-Migration Initial
Update-Database

Der erste Befehl generiert Code, der die Datenbank erstellt, und der zweite Befehl führt diesen Code aus. Die Datenbank wird lokal mit LocalDB erstellt.

Screenshot des Fensters

Erkunden der API (Optional)

Drücken Sie F5, um die Anwendung im Debugmodus auszuführen. Visual Studio startet IIS Express und führt Ihre Web-App aus. Visual Studio startet dann einen Browser und öffnet die Startseite der App.

Wenn Visual Studio ein Webprojekt ausführt, weist es eine Portnummer zu. In der folgenden Abbildung lautet die Portnummer 50524. Wenn Sie die Anwendung ausführen, wird eine andere Portnummer angezeigt.

Screenshot des Anwendungsfensters, das in Visual Studio im Debugmodus gestartet wurde, wobei der A P I-Link rot eingekreist und mit einem roten Pfeil hervorgehoben wurde.

Die Startseite wird mit ASP.NET MVC implementiert. Oben auf der Seite befindet sich ein Link mit der Aufschrift "API". Dieser Link bringt Sie zu einer automatisch generierten Hilfeseite für die Web-API. (Informationen dazu, wie diese Hilfeseite generiert wird und wie Sie der Seite Ihre eigene Dokumentation hinzufügen können, finden Sie unter Erstellen von Hilfeseiten für ASP.NET-Web-API.) Sie können auf die Links der Hilfeseite klicken, um Details zur API anzuzeigen, einschließlich des Anforderungs- und Antwortformats.

Screenshot der automatisch generierten Hilfeseite mit einer Liste von Links zur Dokumentation für API-Features.

Die API aktiviert CRUD-Vorgänge für die Datenbank. Im Folgenden wird die API zusammengefasst.

Authors BESCHREIBUNG
GET-API/Autoren Alle Autoren abrufen.
GET api/authors/{id} Abrufen eines Autors nach ID.
POST /api/authors Erstellen Sie einen neuen Autor.
PUT /api/authors/{id} Aktualisieren Sie einen vorhandenen Autor.
DELETE /api/authors/{id} Löschen Sie einen Autor.
Bücher BESCHREIBUNG
GET /api/books Alle Bücher abrufen.
GET /api/books/{id} Rufen Sie ein Buch nach ID ab.
POST /api/books Erstellen Sie ein neues Buch.
PUT /api/books/{id} Aktualisieren Sie ein vorhandenes Buch.
DELETE /api/books/{id} Löschen Sie ein Buch.

Datenbank anzeigen (Optional)

Wenn Sie den Befehl Update-Database ausgeführt haben, hat EF die Datenbank erstellt und die Seed -Methode aufgerufen. Wenn Sie die Anwendung lokal ausführen, verwendet EF LocalDB. Sie können die Datenbank in Visual Studio anzeigen. Wählen Sie im Menü Ansicht die Option SQL Server-Objekt-Explorer.

Screenshot der S Q L Server-Objekt-Explorer mit dem blau hervorgehobenen S Q L Server-Element und dem gelb hervorgehobenen Element

Geben Sie im Dialogfeld Verbindung mit Server herstellen im Bearbeitungsfeld Servername "(localdb)\v11.0" ein. Belassen Sie die Option Authentifizierung als "Windows-Authentifizierung". Klicke auf Verbinden.

Screenshot des Dialogfelds Mit Server verbinden mit dem text local d b v 11 punkt 0 im Feld Servername und blau hervorgehoben.

Visual Studio stellt eine Verbindung mit LocalDB her und zeigt Ihre vorhandenen Datenbanken im fenster SQL Server Objekt-Explorer an. Sie können die Knoten erweitern, um die von EF erstellten Tabellen anzuzeigen.

Screenshot: S Q L Server Objekt-Explorer mit der Ordnerhierarchie mit blau hervorgehobenem Element Book Service Context

Klicken Sie mit der rechten Maustaste auf eine Tabelle, und wählen Sie Daten anzeigen aus, um die Daten anzuzeigen.

Screenshot der S Q L Server-Objekt-Explorer mit dem blau hervorgehobenen Element

Der folgende Screenshot zeigt die Ergebnisse für die Tabelle Books. Beachten Sie, dass EF die Datenbank mit den Seeddaten aufgefüllt hat und die Tabelle den Fremdschlüssel für die Tabelle Authors enthält.

Screenshot der Tabelle Books mit der Datenbank, die mit Seeddaten aufgefüllt ist, und der Tabelle, die den Fremdschlüssel enthält.