.net 6 Ef Core Execute Stored Procedure

4 min read Jun 03, 2024
.net 6 Ef Core Execute Stored Procedure

Exécution de procédures stockées avec EF Core dans .NET 6

Introduction

Entity Framework Core (EF Core) est un framework ORM populaire pour .NET qui simplifie l'interaction avec les bases de données. Bien qu'EF Core offre de nombreuses fonctionnalités pour interagir avec les bases de données de manière orientée objet, il peut être nécessaire d'exécuter des procédures stockées pour des tâches complexes ou optimisées. Cet article vous guidera sur la manière d'exécuter des procédures stockées avec EF Core dans .NET 6.

Configuration de la procédure stockée

Avant d'exécuter une procédure stockée, il est important de la configurer dans votre modèle EF Core. Vous pouvez le faire via l'annotation [DbFunction] ou en utilisant le fluent API.

Exemple d'utilisation de l'annotation [DbFunction]:

using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions options) : base(options) { }

    [DbFunction("dbo.GetCustomersByName")]
    public static IQueryable GetCustomersByName(string name)
    {
        throw new NotImplementedException();
    }
}

Exemple d'utilisation du fluent API:

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions options) : base(options) { }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasDbFunction("dbo.GetCustomersByName")
            .HasName("GetCustomersByName")
            .IsComposable()
            .HasParameter("name", typeof(string))
            .Returns();
    }
}

Exécution de la procédure stockée

Une fois la procédure stockée configurée, vous pouvez l'exécuter à l'aide de la méthode FromSqlRaw de EF Core.

Exemple d'exécution de la procédure stockée:

using Microsoft.EntityFrameworkCore;

public class MyService
{
    private readonly MyDbContext _context;

    public MyService(MyDbContext context)
    {
        _context = context;
    }

    public List GetCustomersByName(string name)
    {
        return _context.GetCustomersByName(name)
            .FromSqlRaw("dbo.GetCustomersByName {0}", name)
            .ToList();
    }
}

Gestion des paramètres

Les procédures stockées peuvent prendre des paramètres. Vous pouvez passer ces paramètres à la méthode FromSqlRaw à l'aide de la syntaxe de mise en forme de chaîne.

Exemple d'exécution de la procédure stockée avec paramètres:

public List GetCustomersByName(string name, int age)
{
    return _context.GetCustomersByName(name, age)
        .FromSqlRaw("dbo.GetCustomersByName {0}, {1}", name, age)
        .ToList();
}

Remarques

  • Les procédures stockées sont exécutées directement sur la base de données, contournant les mécanismes de suivi des changements d'EF Core.
  • EF Core ne peut pas suivre les modifications des entités retournées par les procédures stockées.
  • L'utilisation des procédures stockées peut améliorer les performances si elles sont optimisées pour la base de données.

Conclusion

Exécuter des procédures stockées avec EF Core dans .NET 6 est un processus simple et efficace. En utilisant les annotations ou le fluent API, vous pouvez configurer et exécuter des procédures stockées en toute sécurité et de manière optimale.

Related Post