Utiliser Migrations Code First pour amorcer la base de données

Télécharger le projet terminé

Dans cette section, vous allez utiliser Migrations Code First dans EF pour amorcer la base de données avec des données de test.

Dans le menu Outils , sélectionnez Gestionnaire de package NuGet, puis Console du Gestionnaire de package. Dans la fenêtre Console du Gestionnaire de package, entrez la commande suivante :

Enable-Migrations

Cette commande ajoute un dossier nommé Migrations à votre projet, ainsi qu’un fichier de code nommé Configuration.cs dans le dossier Migrations.

Capture d’écran du Explorateur de solutions montrant la hiérarchie de dossiers avec le fichier Configuration dot c s mis en évidence en bleu.

Ouvrez le fichier Configuration.cs. Ajoutez l’instruction using suivante.

using BookService.Models;

Ajoutez ensuite le code suivant à la méthode 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" }
        );
}

Dans la fenêtre Console du Gestionnaire de package, tapez les commandes suivantes :

Add-Migration Initial
Update-Database

La première commande génère le code qui crée la base de données, et la deuxième commande exécute ce code. La base de données est créée localement à l’aide de LocalDB.

Capture d’écran de la fenêtre Console du Gestionnaire de package avec les lignes Activer les migrations, Ajouter une migration initiale et Mettre à jour la base de données cerclées en rouge.

Explorer l’API (facultatif)

Appuyez sur F5 pour exécuter l'application en mode débogage. Visual Studio démarre IIS Express et exécute votre application web. Visual Studio lance ensuite un navigateur et ouvre la page d’accueil de l’application.

Quand Visual Studio exécute un projet web, il attribue un numéro de port. Dans l’image ci-dessous, le numéro de port est 50524. Lorsque vous exécutez l’application, vous voyez un numéro de port différent.

Capture d’écran de la fenêtre d’application lancée à partir de Visual Studio en mode débogage avec le lien API cerclé en rouge et mis en surbrillance avec une flèche rouge.

La page d’accueil est implémentée à l’aide de ASP.NET MVC. En haut de la page, un lien indique « API ». Ce lien vous permet d’accéder à une page d’aide générée automatiquement pour l’API web. (Pour savoir comment cette page d’aide est générée et comment ajouter votre propre documentation à la page, consultez Création de pages d’aide pour API Web ASP.NET.) Vous pouvez cliquer sur les liens de la page d’aide pour afficher des détails sur l’API, notamment le format de demande et de réponse.

Capture d’écran de la page d’aide générée automatiquement montrant une liste de liens vers la documentation relative aux fonctionnalités d’API.

L’API active les opérations CRUD sur la base de données. Voici un résumé de l’API.

Auteurs Description
API/auteurs GET Obtenir tous les auteurs.
GET api/authors/{id} Obtenir un auteur par ID.
POST /api/authors Créez un auteur.
PUT /api/authors/{id} Mettre à jour un auteur existant.
DELETE /api/authors/{id} Supprimer un auteur.
Livres Description
GET /api/books Obtenez tous les livres.
GET /api/books/{id} Obtenez un livre par ID.
POST /api/books Créez un livre.
PUT /api/books/{id} Mettre à jour un livre existant.
DELETE /api/books/{id} Supprimer un livre.

Afficher la base de données (facultatif)

Lorsque vous avez exécuté la commande Update-Database, EF a créé la base de données et appelé la Seed méthode . Lorsque vous exécutez l’application localement, EF utilise LocalDB. Vous pouvez afficher la base de données dans Visual Studio. Dans le menu Vue, sélectionnez Explorateur d’objets SQL Server.

Capture d’écran de l’Explorateur d'objets du serveur SQL montrant l’élément Serveur QL mis en surbrillance en bleu et l’élément Ajouter un serveur QL mis en surbrillance en jaune.

Dans la boîte de dialogue Se connecter au serveur , dans la zone d’édition Nom du serveur , tapez « (localdb)\v11.0 ». Laissez l’option Authentification sur « Authentification Windows ». Cliquez sur Connexion.

Capture d’écran de la boîte de dialogue Se connecter au serveur montrant le texte local d b v 11 point 0 dans le champ Nom du serveur et mis en surbrillance en bleu.

Visual Studio se connecte à LocalDB et affiche vos bases de données existantes dans la fenêtre SQL Server Explorateur d'objets. Vous pouvez développer les nœuds pour afficher les tables créées par EF.

Capture d’écran de l’Explorateur d'objets du serveur QL montrant la hiérarchie de dossiers avec l’élément Book Service Context mis en évidence en bleu.

Pour afficher les données, cliquez avec le bouton droit sur une table et sélectionnez Afficher les données.

Capture d’écran du Explorateur d'objets du serveur SQL montrant l’élément d b o dot Books mis en surbrillance en bleu et l’élément Afficher les données mis en surbrillance en jaune.

La capture d’écran suivante montre les résultats de la table Books. Notez qu’EF a rempli la base de données avec les données de départ et que la table contient la clé étrangère de la table Authors.

Capture d’écran de la table Books montrant la base de données remplie avec des données de départ et la table contenant la clé étrangère.