Usare Migrazioni Code First per eseguire il seeding del database
Scaricare il progetto completato
In questa sezione si userà 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.
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 il codice che crea il database e il secondo comando esegue tale codice. Il database viene creato in locale usando LocalDB.
Esplorare l'API (facoltativo)
Premere F5 per eseguire l'applicazione in modalità 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.
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 API Web ASP.NET. È possibile fare clic sui collegamenti alla pagina della Guida per visualizzare i dettagli sull'API, inclusi il formato di richiesta e risposta.
L'API abilita le operazioni CRUD nel database. Di seguito viene riepilogato l'API.
Autori | Descrizione |
---|---|
API/autori GET | Ottenere 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} | Ottenere un libro in base all'ID. |
POST /api/books | Creare un nuovo libro. |
PUT /api/books/{id} | Aggiornare un libro esistente. |
DELETE /api/books/{id} | Eliminare un libro. |
Visualizzare il database (facoltativo)
Quando è stato eseguito il comando Update-Database, EF 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.
Nella finestra di dialogo Connetti al server digitare "(localdb)\v11.0 nella casella di modifica Nome server ". Lasciare l'opzione Autenticazione di Windows come "Autenticazione di Windows". Fare clic su Connetti.
Visual Studio si connette a LocalDB e mostra i database esistenti nella finestra SQL Server Esplora oggetti. È possibile espandere i nodi per visualizzare le tabelle create da Entity Framework.
Per visualizzare i dati, fare clic con il pulsante destro del mouse su una tabella e scegliere Visualizza dati.
Lo screenshot seguente mostra i risultati per la tabella Books. Si noti che EF ha popolato il database con i dati di inizializzazione e la tabella contiene la chiave esterna nella tabella Authors.