Skip to content

Étape 2 Modèle et persistance

Adrien Clerbois edited this page Jan 26, 2019 · 14 revisions

Dans cette partie, nous allons renseigner un modèle de données pour notre application et générer notre base de données automatiquement à l'aide d'Entity Framework.

Avant de commencer cette partie, nous avons de créer une base de données SQL Server. Nous vous recommandons d'utiliser Azure SQL Database, vous pouvez créer une base de données en suivant ce lien : Annexe 1 - Créer une base de données SQL à l'aide d'Azure

  1. La première étape consiste à installer Entity Framework pour notre application :
  • À partir du menu de Visual Studio, sélectionner Project > Manage NuGet Packages
  • Cliquez sur Browse
  • Pour installer ou mettre à jour le fournisseur SQL Server, sélectionnez le paquet Microsoft.EntityFrameworkCore.SqlServer, et confirmer.

Step  2 - 5

  1. Dans notre projet, ajoutez une classe appelée Recipe dans le dossier Models.

Step  2 - 6

Step  2 - 7

  1. Remplissez le fichier avec :
using System.ComponentModel.DataAnnotations;

namespace Mic.CookBook.Web.Models
{
    public class Recipe
    {
        [Key]
        public int Id { get; set; }

        public string Name { get; set; }

        public string Location { get; set; }

        public string Details { get; set; }

        public string Image { get; set; }

        public string Category { get; set; }

        public long Population { get; set; }

        public double Latitude { get; set; }

        public double Longitude { get; set; }
    }
}
  1. Ajoutez un dossier appelé Database à la racine de votre projet, et créez une nouvelle classe appelée CookBookContext. Ajoutez alors le script suivant pour contextualisé votre base de données:
using Mic.CookBook.Web.Models;
using Microsoft.EntityFrameworkCore;

namespace Mic.CookBook.Web.Database
{
    public class CookBookContext : DbContext
    {
        public CookBookContext(DbContextOptions<CookBookContext> options) : base(options) { }

        public DbSet<Recipe> Recipes { get; set; }
    }
}
  1. Ouvrez le fichier startup.cs à la racine de votre projet pour y ajouter les lignes suivantes :
  public void ConfigureServices(IServiceCollection services)
        {
            // ...

            services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            var connectionString = @"Server=tcp:mic-cookbook.database.windows.net,1433;Initial Catalog=demo;Persist Security Info=False;User ID=aclerbois;Password=**********;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";
            services.AddDbContext<CookBookContext>
                (options => options.UseSqlServer(connection));
        }

Ajoutez les namespaces suivant dans le haut du fichier:

using Microsoft.EntityFrameworkCore;
using Mic.CookBook.Web.Database;

Afin de créer la base de données, nous avons besoin d'installer un paquet nuget supplémentaire Microsoft.EntityFrameworkCore.Tools.

  1. Ouvrez le menu Console du gestionnaire de package. Entrez les commandes suivantes.
Add-Migration InitialCreate
Update-Database

La commande Add-Migration échafaude une migration pour créer l'ensemble initial de tables pour le modèle. La commande Update-Database crée la base de données et y applique la nouvelle migration.

Step  2 - 8