Bien démarrer avec EF Core
Dans ce tutoriel, vous allez créer une application console .NET Core qui effectue un accès aux données d’une base de données SQLite à l’aide d’Entity Framework Core.
Vous pouvez suivre le tutoriel à l’aide de Visual Studio sur Windows, ou à l’aide de l’interface CLI .NET sur Windows, macOS ou Linux.
Affichez l’exemple proposé dans cet article sur GitHub.
Prérequis
Installez les logiciels suivants :
Créer un projet
dotnet new console -o EFGetStarted
cd EFGetStarted
Installer Entity Framework Core
Pour installer EF Core, installez le package pour le ou les fournisseurs de bases de données EF Core à cibler. Ce tutoriel utilise SQLite, car il s’exécute sur toutes les plateformes prises en charge par .NET. Pour obtenir la liste des fournisseurs disponibles, consultez Fournisseurs de bases de données.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Créer le modèle
Définissez une classe de contexte et des classes d’entité qui composent le modèle.
- Dans le répertoire du projet, créez Model.cs avec le code suivant.
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public string DbPath { get; }
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
// The following configures EF to create a Sqlite database file in the
// special "local" folder for your platform.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; } = new();
}
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; }
}
EF Core peut également rétroconcevoir un modèle à partir d’une base de données existante.
Astuce : Cette application a été conçue intentionnellement simple par souci de clarté. Les chaînes de connexion ne doivent pas être stockées dans le code pour les applications de production. Vous pouvez également fractionner les différentes classes C# dans leur propre fichier.
Création de la base de données
Les étapes suivantes utilisent des migrations pour créer une base de données.
Exécutez les commandes suivantes :
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update
Cette action installe dotnet ef et le package de conception requis pour exécuter la commande sur un projet. La commande
migrations
structure une migration afin de créer le jeu initial de tables du modèle. La commandedatabase update
crée la base de données et lui applique la nouvelle migration.
Créer, lire, mettre à jour et supprimer
Ouvrez Program.cs et remplacez le contenu par le code suivant :
using System; using System.Linq; using var db = new BloggingContext(); // Note: This sample requires the database to be created before running. Console.WriteLine($"Database path: {db.DbPath}."); // Create Console.WriteLine("Inserting a new blog"); db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" }); db.SaveChanges(); // Read Console.WriteLine("Querying for a blog"); var blog = db.Blogs .OrderBy(b => b.BlogId) .First(); // Update Console.WriteLine("Updating the blog and adding a post"); blog.Url = "https://devblogs.microsoft.com/dotnet"; blog.Posts.Add( new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" }); db.SaveChanges(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); db.SaveChanges();
Exécuter l’application
dotnet run
Étapes suivantes
- Suivre le tutoriel ASP.NET Core pour utiliser EF Core dans une application web
- Découvrir les expressions de requête LINQ
- Configurer votre modèle pour spécifier des éléments tels que la longueur requise et la longueur maximale
- Utiliser des migrations pour mettre à jour le schéma de base de données après avoir changé votre modèle