Bien démarrer avec EF Core sur .NET Framework avec une nouvelle base de donnéesGetting started with EF Core on .NET Framework with a New Database

Dans ce tutoriel, vous générez une application console qui exécute l’accès aux données de base d’une base de données Microsoft SQL Server à l’aide d’Entity Framework.In this tutorial, you build a console application that performs basic data access against a Microsoft SQL Server database using Entity Framework. Vous utilisez des migrations pour créer la base de données à partir d’un modèle.You use migrations to create the database from a model.

Affichez l’exemple proposé dans cet article sur GitHub.View this article's sample on GitHub.

PrérequisPrerequisites

Créer un projetCreate a new project

  • Ouvrez Visual Studio 2017.Open Visual Studio 2017

  • Fichier > Nouveau > Projet...File > New > Project...

  • Dans le menu de gauche, sélectionnez Installé > Visual C# > Windows Desktop.From the left menu select Installed > Visual C# > Windows Desktop

  • Sélectionnez le modèle de projet Application console (.NET Framework).Select the Console App (.NET Framework) project template

  • Vérifiez que le projet cible le .NET Framework 4.6.1 ou ultérieur.Make sure that the project targets .NET Framework 4.6.1 or later

  • Nommez le projet ConsoleApp.NewDb et cliquez sur OK.Name the project ConsoleApp.NewDb and click OK

Installer Entity FrameworkInstall Entity Framework

Pour utiliser EF Core, installez le package pour le ou les fournisseurs de bases de données à cibler.To use EF Core, install the package for the database provider(s) you want to target. Ce tutoriel utilise SQL Server.This tutorial uses SQL Server. Pour obtenir la liste des fournisseurs disponibles, consultez Fournisseurs de bases de données.For a list of available providers see Database Providers.

  • Outils > Gestionnaire de package NuGet > Console du Gestionnaire de packageTools > NuGet Package Manager > Package Manager Console

  • Exécutez Install-Package Microsoft.EntityFrameworkCore.SqlServer.Run Install-Package Microsoft.EntityFrameworkCore.SqlServer

Un peu plus loin dans ce tutoriel, vous utiliserez certains outils Entity Framework pour gérer la base de données.Later in this tutorial you use some Entity Framework Tools to maintain the database. Installez donc le package d’outils.So install the tools package as well.

  • Exécutez Install-Package Microsoft.EntityFrameworkCore.Tools.Run Install-Package Microsoft.EntityFrameworkCore.Tools

Créer le modèleCreate the model

Définissons à présent le contexte et les classes d’entité qui composent le modèle.Now it's time to define a context and entity classes that make up the model.

  • Projet > Ajouter une classe...Project > Add Class...

  • Entrez le nom Model.cs et cliquez sur OK.Enter Model.cs as the name and click OK

  • Remplacez le contenu du fichier par le code suivant.Replace the contents of the file with the following code

    using Microsoft.EntityFrameworkCore;
    using System.Collections.Generic;
    
    namespace ConsoleApp.NewDb
    {
        public class BloggingContext : DbContext
        {
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;");
            }
        }
    
        public class Blog
        {
            public int BlogId { get; set; }
            public string Url { get; set; }
    
            public List<Post> Posts { get; set; }
        }
    
        public class Post
        {
            public int PostId { get; set; }
            public string Title { get; set; }
            public string Content { get; set; }
    
            public int BlogId { get; set; }
            public Blog Blog { get; set; }
        }
    }
    

Conseil

Dans une application réelle, vous placez chaque classe dans un fichier distinct et la chaîne de connexion dans un fichier de configuration ou une variable d’environnement.In a real application you would put each class in a separate file and put the connection string in a configuration file or environment variable. Par souci de simplicité, ce tutoriel place le tout dans un même fichier de code.For the sake of simplicity, everything is in a single code file for this tutorial.

Créer la base de donnéesCreate the database

Une fois que vous avez un modèle, vous pouvez utiliser des migrations pour créer une base de données.Now that you have a model, you can use migrations to create a database.

  • Outils > Gestionnaire de package NuGet > Console du Gestionnaire de packageTools > NuGet Package Manager > Package Manager Console

  • Exécutez Add-Migration InitialCreate pour générer automatiquement un modèle de migration afin de créer le jeu initial de tables du modèle.Run Add-Migration InitialCreate to scaffold a migration to create the initial set of tables for the model.

  • Exécutez Update-Database pour appliquer la nouvelle migration à la base de données.Run Update-Database to apply the new migration to the database. Étant donné que votre base de données n’existe pas encore, elle sera créée avant l’application de la migration.Because the database doesn't exist yet, it will be created before the migration is applied.

Conseil

Si vous apportez des changements au modèle, vous pouvez utiliser la commande Add-Migration pour générer automatiquement un nouveau modèle de migration pour appliquer les changements de schéma correspondants à la base de données.If you make changes to the model, you can use the Add-Migration command to scaffold a new migration to make the corresponding schema changes to the database. Après avoir vérifié le code de modèle généré automatiquement (et effectué toutes les modifications nécessaires), vous pouvez utiliser la commande Update-Database pour appliquer les modifications à la base de données.Once you have checked the scaffolded code (and made any required changes), you can use the Update-Database command to apply the changes to the database.

EF utilise une table __EFMigrationsHistory dans la base de données pour identifier les migrations qui ont déjà été appliquées à la base de données.EF uses a __EFMigrationsHistory table in the database to keep track of which migrations have already been applied to the database.

Utiliser le modèleUse the model

Vous pouvez à présent utiliser le modèle pour accéder aux données.You can now use the model to perform data access.

  • Ouvrez Program.cs.Open Program.cs

  • Remplacez le contenu du fichier par le code suivant.Replace the contents of the file with the following code

    using System;
    
    namespace ConsoleApp.NewDb
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new BloggingContext())
                {
                    db.Blogs.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
                    var count = db.SaveChanges();
                    Console.WriteLine("{0} records saved to database", count);
    
                    Console.WriteLine();
                    Console.WriteLine("All blogs in database:");
                    foreach (var blog in db.Blogs)
                    {
                        Console.WriteLine(" - {0}", blog.Url);
                    }
                }
            }
        }
    }
    
  • Déboguer > Démarrer sans débogageDebug > Start Without Debugging

    Vous voyez qu’un blog est enregistré dans la base de données et que les détails de tous les blogs s’affichent dans la console.You see that one blog is saved to the database and then the details of all blogs are printed to the console.

    image

Ressources supplémentairesAdditional Resources