Condividi tramite


Usare le migrazioni Code First per eseguire il seeding del database

Scaricare il progetto completato

In questa sezione si useranno Migrazioni Code First in Entity Framework per eseguire il seeding del database con i dati di test.

Dal menu Strumenti selezionare Gestione pacchetti NuGet e quindi console di Gestione pacchetti. Nella finestra Console di Gestione pacchetti immettere il comando seguente:

Enable-Migrations

Questo comando aggiunge una cartella denominata Migrations al progetto, oltre a un file di codice denominato Configuration.cs nella cartella Migrations.

Screenshot dell'Esplora soluzioni che mostra la gerarchia di cartelle con il file Configuration.cs evidenziato in blu.

Aprire il file Configuration.cs. Aggiungere l'istruzione using seguente.

using BookService.Models;

Aggiungere quindi il codice seguente al metodo 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" }
        );
}

Nella finestra Console di Gestione pacchetti digitare i comandi seguenti:

Add-Migration Initial
Update-Database

Il primo comando genera codice che crea il database e il secondo comando esegue tale codice. Il database viene creato localmente usando LocalDB.

Screenshot della finestra della Console di Gestione pacchetti con le righe Abilita Migrazioni, Aggiungi Migrazione Iniziale e Aggiorna Database cerchiate in rosso.

Esplorare l'API (facoltativo)

Premere F5 per eseguire l'applicazione in modalità di debug. Visual Studio avvia IIS Express ed esegue l'app Web. Visual Studio avvia quindi un browser e apre la home page dell'app.

Quando Visual Studio esegue un progetto Web, assegna un numero di porta. Nell'immagine seguente il numero di porta è 50524. Quando si esegue l'applicazione, verrà visualizzato un numero di porta diverso.

Screenshot della finestra dell'applicazione avviata da Visual Studio in modalità di debug con il collegamento A P I cerchiato in rosso ed evidenziato con una freccia rossa.

La home page viene implementata usando ASP.NET MVC. Nella parte superiore della pagina è presente un collegamento che indica "API". Questo collegamento consente di visualizzare una pagina della Guida generata automaticamente per l'API Web. Per informazioni su come viene generata questa pagina della Guida e su come aggiungere la propria documentazione alla pagina, vedere Creazione di pagine della Guida per ASP.NET API Web. È possibile fare clic sui collegamenti alla pagina della Guida per visualizzare i dettagli sull'API, inclusi il formato di richiesta e risposta.

Screenshot della pagina della Guida generata automaticamente che mostra un elenco di collegamenti alla documentazione per le funzionalità dell'API.

L'API abilita le operazioni CRUD nel database. Di seguito viene riepilogata l'API.

Autori Descrizione
GET api/autori Recupera tutti gli autori.
GET api/authors/{id} Ottenere un autore in base all'ID.
POST /api/authors Creare un nuovo autore.
PUT /api/authors/{id} Aggiornare un autore esistente.
DELETE /api/authors/{id} Eliminare un autore.
Libri Descrizione
GET /api/books Ottieni tutti i libri.
GET /api/books/{id} Recuperare un libro tramite ID.
POST /api/books Crea un nuovo libro.
PUT /api/books/{id} Aggiornare un libro esistente.
DELETE /api/books/{id} Eliminare un libro.

Visualizzare il database (facoltativo)

Quando si esegue il comando Update-Database, Entity Framework ha creato il database e ha chiamato il Seed metodo . Quando si esegue l'applicazione in locale, EF usa LocalDB. È possibile visualizzare il database in Visual Studio. Dal menu Visualizza selezionare Esplora oggetti di SQL Server.

Screenshot dell'Esplora oggetti di S Q L Server che mostra l'elemento S Q L Server evidenziato in blu e l'elemento Aggiungi S Q L Server evidenziato in giallo.

Nella finestra di dialogo Connetti al server digitare "(localdb)\v11.0 nella casella di modifica Nome server ". Lasciare l'opzione di Autenticazione impostata su "Autenticazione di Windows". Fare clic su Connetti.

Screenshot della finestra di dialogo Connetti al server che mostra il testo

Visual Studio si connette a LocalDB e mostra i database esistenti nella finestra Esplora oggetti di SQL Server. È possibile espandere i nodi per visualizzare le tabelle create da Entity Framework.

Screenshot di Esplora oggetti di SQL Server che mostra la gerarchia di cartelle con l'elemento

Per visualizzare i dati, fare clic con il pulsante destro del mouse su una tabella e selezionare Visualizza dati.

Screenshot di Esplora oggetti del server S Q L che mostra l'elemento d b o dot Books evidenziato in blu e l'elemento Visualizza dati evidenziato in giallo.

Lo screenshot seguente mostra i risultati per la tabella Books. Notare che EF ha popolato il database con i dati di inizializzazione e la tabella contiene la chiave esterna alla tabella Authors.

Screenshot della tabella Books che mostra il database popolato con i dati di inizializzazione e la tabella contenente la chiave esterna.