Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous allez créer une application console .NET Core qui effectue l’accès aux données sur une base de données SQLite à l’aide d’Entity Framework Core.
Vous pouvez suivre le didacticiel à l’aide de Visual Studio sur Windows ou à l’aide de l’interface CLI .NET sur Windows, macOS ou Linux.
Consultez l’exemple de cet article sur GitHub.
Conditions préalables
Installez les logiciels suivants :
Créer un projet
dotnet new console -o EFGetStarted
cd EFGetStarted
Installer Entity Framework Core
Pour installer EF Core, vous installez le package pour le ou les fournisseurs de base de données EF Core que vous souhaitez cibler. Ce didacticiel 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 base 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 inverser l’ingénierie d’un modèle à partir d’une base de données existante.
Conseil : cette application conserve intentionnellement les choses simples pour plus de clarté. Les chaînes de connexion ne doivent pas être stockées dans le code des applications de production. Vous pouvez également fractionner chaque classe C# en son propre fichier.
Créer la base de données
Les étapes suivantes utilisent les 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
Cela installe dotnet ef et le package de conception requis pour exécuter la commande sur un projet. La
migrations
commande génère une migration pour créer l’ensemble initial de tables pour le modèle. Ladatabase update
commande crée la base de données et applique la nouvelle migration à celle-ci.
Créer, lire, mettre à jour & supprimer
Ouvrez Program.cs et remplacez le contenu par le code suivant :
using System; using System.Linq; using Microsoft.EntityFrameworkCore; 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" }); await db.SaveChangesAsync(); // Read Console.WriteLine("Querying for a blog"); var blog = await db.Blogs .OrderBy(b => b.BlogId) .FirstAsync(); // 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!" }); await db.SaveChangesAsync(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); await db.SaveChangesAsync();
Exécuter l’application
dotnet run
Étapes suivantes
- Suivez le didacticiel ASP.NET Core pour utiliser EF Core dans une application web
- En savoir plus sur les expressions de requête LINQ
- Configurer votre modèle pour spécifier des éléments tels que requis et une longueur maximale
- Utiliser migrations pour mettre à jour le schéma de base de données après avoir modifié votre modèle