Använda Code First Migrations för att seeda databasen

Ladda ned slutfört projekt

I det här avsnittet använder du Code First Migrations i EF för att fylla databasen med testdata.

På menyn Verktyg väljer du NuGet Package Manager och sedan Package Manager Console. I fönstret Package Manager Console anger du följande kommando:

Enable-Migrations

Det här kommandot lägger till en mapp med namnet Migreringar till projektet, plus en kodfil med namnet Configuration.cs i mappen Migreringar.

Skärmbild av Solution Explorer som visar mapphierarkin med filen Configuration dot c s markerad i blått.

Öppna filen Configuration.cs. Lägg till följande using-sats.

using BookService.Models;

Lägg sedan till följande kod i metoden Configuration.Seed :

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" }
        );
}

I fönstret Package Manager Console skriver du följande kommandon:

Add-Migration Initial
Update-Database

Det första kommandot genererar kod som skapar databasen och det andra kommandot kör koden. Databasen skapas lokalt med hjälp av LocalDB.

Skärmbild av package manager-konsolfönstret med raderna Aktivera migreringar, Lägg till migrering initial och Uppdatera databas inringad i rött.

Utforska API:et (valfritt)

Tryck på F5 för att köra programmet i felsökningsläge. Visual Studio startar IIS Express och kör din webbapp. Visual Studio startar sedan en webbläsare och öppnar appens startsida.

När Visual Studio kör ett webbprojekt tilldelas ett portnummer. I bilden nedan är portnumret 50524. När du kör programmet visas ett annat portnummer.

Skärmbild av programfönstret som startades från Visual Studio i felsökningsläge med A P I-länken inringad i rött och markerad med en röd pil.

Startsidan implementeras med hjälp av ASP.NET MVC. Överst på sidan finns en länk som säger "API". Den här länken tar dig till en automatiskt genererad hjälpsida för webb-API:et. (Information om hur den här hjälpsidan genereras och hur du kan lägga till din egen dokumentation på sidan finns i Skapa hjälpsidor för ASP.NET webb-API.) Du kan klicka på hjälpsidans länkar för att se information om API:et, inklusive formatet för begäran och svar.

Skärmbild av den automatiskt genererade hjälpsidan som visar en lista med länkar till dokumentation för API-funktioner.

API:et aktiverar CRUD-åtgärder i databasen. Följande sammanfattar API:et.

Författare Beskrivning
GET API/författare Hämta alla författare.
GET api/authors/{id} Hämta en författare efter ID.
POST /api/authors Skapa en ny författare.
PUT /api/authors/{id} Uppdatera en befintlig författare.
DELETE /api/authors/{id} Ta bort en författare.
Böcker Beskrivning
GET /api/books Hämta alla böcker.
GET /api/books/{id} Hämta en bok med ID.
POST /api/books Skapa en ny bok.
PUT /api/books/{id} Uppdatera en befintlig bok.
DELETE /api/books/{id} Ta bort en bok.

Visa databasen (valfritt)

När du körde kommandot Update-Database skapade EF databasen och anropade Seed metoden. När du kör programmet lokalt använder EF LocalDB. Du kan visa databasen i Visual Studio. Gå till Visa-menyn och välj SQL Server Object Explorer.

Skärmbild av S Q L Server Object Explorer som visar S Q L Server-objektet markerat i blått och objektet Lägg till S Q L Server markerat i gult.

I dialogrutan Anslut till server i redigeringsrutan Servernamn skriver du "(localdb)\v11.0". Lämna alternativet Autentisering som "Windows-autentisering". Klicka på Anslut.

Skärmbild av dialogrutan Anslut till server som visar texten local d b v 11 dot 0 i fältet Servernamn och markerat i blått.

Visual Studio ansluter till LocalDB och visar dina befintliga databaser i fönstret SQL Server Object Explorer. Du kan expandera noderna för att se de tabeller som EF har skapat.

Skärmbild av S Q L Server Object Explorer som visar mapphierarkin med objektet Boktjänstkontext markerat i blått.

Om du vill visa data högerklickar du på en tabell och väljer Visa data.

Skärmbild av S Q L Server Object Explorer som visar objektet d b o dot Books markerat i blått och objektet Visa data markerat i gult.

Följande skärmbild visar resultatet för tabellen Böcker. Observera att EF fyllde databasen med startdata och att tabellen innehåller den främmande nyckeln till Författartabellen.

Skärmbild av böcker-tabellen som visar databasen fylld med startdata och tabellen som innehåller den främmande nyckeln.