Maison > développement back-end > C++ > Comment appeler des procédures stockées avec des paramètres dans Entity Framework 6 Code-First?

Comment appeler des procédures stockées avec des paramètres dans Entity Framework 6 Code-First?

Mary-Kate Olsen
Libérer: 2025-01-29 01:46:13
original
717 Les gens l'ont consulté

How to Call Stored Procedures with Parameters in Entity Framework 6 Code-First?

Framework de l'entité 6 Code-First: appelant efficacement les procédures stockées avec paramètres

Dans l'approche de code de Code 6 de l'entité 6, la mise à jour des procédures stockées est essentielle pour les interactions complexes de la base de données. Un défi commun consiste à appeler efficacement les procédures stockées et à gérer le passage des paramètres.

illustrons une procédure stockée conçue pour insérer un département:

<code class="language-sql">ALTER PROCEDURE [dbo].[insert_department]
    @Name [varchar](100)
AS
BEGIN
    INSERT [dbo].[Departments]([Name])
    VALUES (@Name)

    DECLARE @DeptId int

    SELECT @DeptId = [DeptId]
    FROM [dbo].[Departments]
    WHERE @@ROWCOUNT > 0 AND [DeptId] = SCOPE_IDENTITY()

    SELECT t0.[DeptId]
    FROM [dbo].[Departments] AS t0
    WHERE @@ROWCOUNT > 0 AND t0.[DeptId] = @DeptId
END</code>
Copier après la connexion

Pour intégrer cette procédure stockée dans le contexte de votre cadre d'entité, mappez-le dans votre modèle:

<code class="language-csharp">modelBuilder
    .Entity<department>()
    .MapToStoredProcedures(s =>
    {
        s.Update(u => u.HasName("modify_department")
                      .Parameter(b => b.Department, "department_id")
                      .Parameter(b => b.Name, "department_name"))
          .Delete(d => d.HasName("delete_department")
                      .Parameter(b => b.DepartmentId, "department_id"))
          .Insert(i => i.HasName("insert_department")
                      .Parameter(b => b.Name, "department_name"));
    });</code>
Copier après la connexion

Ce mappage vous permet d'appeler la procédure stockée directement à partir de votre DBContext:

<code class="language-csharp">this.Database.SqlQuery<department>("insert_department", new SqlParameter("@Name", departmentName));</code>
Copier après la connexion

Pour les procédures stockées renvoyant plusieurs ensembles de résultats (comme indiqué dans l'exemple), consultez la documentation de Microsoft sur "les procédures stockées avec plusieurs ensembles de résultats" pour les meilleures pratiques pour gérer les données renvoyées. Cela fournira des conseils sur le traitement efficace des ensembles de données multiples.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal