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.
Ö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.
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.
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.
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.
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.
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.
Klicken Sie mit der rechten Maustaste auf eine Tabelle, und wählen Sie Daten anzeigen aus, um die Daten anzuzeigen.
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.