Freigeben über


Verwenden von Code-First-Migrationen zum Initialisieren der Datenbank

Abgeschlossenes Projekt herunterladen

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

Wählen Sie im Menü "Extras " die Option "NuGet-Paket-Manager" und dann "Paket-Manager-Konsole" aus. Geben Sie im Paket-Manager-Konsolenfenster den folgenden Befehl ein:

Enable-Migrations

Mit diesem Befehl wird ihrem Projekt ein Ordner namens "Migrationen" sowie eine Codedatei mit dem Namen Configuration.cs im Ordner "Migrationen" hinzugefügt.

Screenshot des Projektmappen-Explorers mit der Ordnerhierarchie, in der die Datei

Öffnen Sie die Configuration.cs Datei. Fügen Sie die folgende Anweisung using 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 Paket-Manager-Konsolenfenster 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 mithilfe von LocalDB erstellt.

Screenshot des Paket-Manager-Konsolenfensters mit den Zeilen

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 abbildung unten ist 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 Link

Die Startseite wird mithilfe von ASP.NET MVC implementiert. Oben auf der Seite befindet sich ein Link mit der Bezeichnung "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 eigene Dokumentation hinzufügen können, finden Sie unter Erstellen von Hilfeseiten für ASP.NET Web-API.) Sie können auf die Hilfeseitenlinks 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 in der Datenbank. Im Folgenden wird die API zusammengefasst.

Autoren Beschreibung
GET-API/Autoren Rufen Sie alle Autoren ab.
GET api/authors/{id} Einen Autor anhand der ID abrufen.
POST /api/authors Erstellen Sie einen neuen Autor.
PUT /api/authors/{id} Aktualisieren eines vorhandenen Autors.
DELETE /api/authors/{id} Löschen eines Autors.
Bücher Beschreibung
GET /api/books Ruft alle Bücher ab.
GET /api/books/{id} Buch nach ID abrufen.
POST /api/books Erstellen Sie ein neues Buch.
PUT /api/books/{id} Aktualisieren eines vorhandenen Buchs.
DELETE /api/books/{id} Löschen eines Buchs.

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 des S Q L Server-Objekt-Explorers mit hervorgehobenem S Q L Server-Element in Blau und dem gelb hervorgehobenen Element

Geben Sie im Dialogfeld „Mit Server verbinden“ im Bearbeitungsfeld „Servername“ „(localdb)\v11.0“ ein. Belassen Sie die Authentifizierungsoption als "Windows-Authentifizierung". Klicken Sie auf Verbinden.

Screenshot des Dialogfelds

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

Screenshot des S Q L Server-Objekt-Explorers mit der Ordnerhierarchie, in der das Buchdienstkontextelement blau hervorgehoben ist.

Klicken Sie zum Anzeigen der Daten mit der rechten Maustaste auf eine Tabelle, und wählen Sie "Daten anzeigen" aus.

Screenshot des S Q L Server-Objekt-Explorers, in dem das Element

Der folgende Screenshot zeigt die Ergebnisse für die Tabelle "Bücher". Beachten Sie, dass EF die Datenbank mit den Startdaten gefüllt hat und die Tabelle den Fremdschlüssel zur Tabelle "Authors" enthält.

Screenshot der Tabelle