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 cette procédure pas à pas, vous allez générer 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 walkthrough, you will build a console application that performs basic data access against a Microsoft SQL Server database using Entity Framework. Vous utiliserez des migrations pour créer la base de données à partir de votre modèle.You will use migrations to create the database from your model.

Conseil

Vous pouvez afficher cet exemple sur GitHub.You can view this article's sample on GitHub.

PrérequisPrerequisites

Pour effectuer cette procédure pas à pas, vous devez satisfaire les prérequis suivants :The following prerequisites are needed to complete this walkthrough:

Créer un projetCreate a new project

  • Ouvrir Visual StudioOpen Visual Studio

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

  • Dans le menu de gauche, sélectionnez Modèles > Visual C# > Bureau classique Windows.From the left menu select Templates > Visual C# > Windows Classic Desktop

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

  • Assurez-vous de bien cibler .NET Framework 4.5.1 ou une version ultérieure.Ensure you are targeting .NET Framework 4.5.1 or later

  • Nommez le projet et cliquez sur OK.Give the project a name 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. Cette procédure pas à pas utilise SQL Server.This walkthrough 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 cette procédure pas à pas, nous utiliserons également des outils Entity Framework pour gérer la base de données.Later in this walkthrough we will also be using some Entity Framework Tools to maintain the database. Nous installerons donc également le package d’outils.So we will install the tools package as well.

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

Créer un modèleCreate your model

Définissons à présent le contexte et les classes d’entité qui composeront le modèle.Now it's time to define a context and entity classes that make up your 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 EFGetStarted.ConsoleApp
{
    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 placeriez chaque classe dans un fichier distinct et la chaîne de connexion dans le fichier App.Config que vous liriez à l’aide de ConfigurationManager.In a real application you would put each class in a separate file and put the connection string in the App.Config file and read it out using ConfigurationManager. Dans le cadre de ce didacticiel, par souci de simplicité, nous plaçons tout dans un même fichier de code.For the sake of simplicity, we are putting everything in a single code file for this tutorial.

Créer la base de donnéesCreate your 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 for you.

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

  • Exécutez Add-Migration MyFirstMigration pour générer automatiquement un modèle de migration pour créer l’ensemble initial de tables de votre modèle.Run Add-Migration MyFirstMigration to scaffold a migration to create the initial set of tables for your 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 pour vous avant l’application de la migration.Because your database doesn't exist yet, it will be created for you before the migration is applied.

Conseil

Si vous apportez des modifications ultérieures au modèle, vous pouvez utiliser la commande Add-Migration pour générer automatiquement un nouveau modèle de migration pour appliquer les modifications du schéma correspondantes à la base de données.If you make future changes to your 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 your model

Vous pouvez à présent utiliser le modèle pour accéder aux données.You can now use your 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 EFGetStarted.ConsoleApp
{
    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 > Exécuter sans débogageDebug > Start Without Debugging

Vous verrez 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 will see that one blog is saved to the database and then the details of all blogs are printed to the console.

image