Heim >Backend-Entwicklung >C++ >Wie rufe ich gespeicherte Prozeduren mit Parametern im Entität Framework 6 Code-First auf?

Wie rufe ich gespeicherte Prozeduren mit Parametern im Entität Framework 6 Code-First auf?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-29 01:46:13755Durchsuche

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

Entity Framework 6 Code-First: Effizient aufgereicherte Prozeduren mit Parametern

aufrufen

Im Code-ersten-Ansatz von Entity Framework 6 ist die Nutzung gespeicherter Verfahren für komplexe Datenbankinteraktionen von wesentlicher Bedeutung. Eine häufige Herausforderung besteht darin, gespeicherte Verfahren effektiv aufzurufen und Parameterübergang zu verwalten.

veranschaulichen wir eine gespeicherte Prozedur, mit der eine Abteilung eingefügt wurde:

<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>

Um diese gespeicherte Prozedur in Ihren Entitäts -Framework -Kontext zu integrieren

<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>
Mit dieser Zuordnung können Sie die gespeicherte Prozedur direkt von Ihrem DBContext aufrufen:

<code class="language-csharp">this.Database.SqlQuery<department>("insert_department", new SqlParameter("@Name", departmentName));</code>
Für gespeicherte Prozeduren, die mehrere Ergebnissätze zurückgeben (wie im Beispiel gezeigt), wenden Sie sich an die Dokumentation von Microsoft zu "gespeicherten Prozeduren mit mehreren Ergebnismengen" für Best Practices bei der Behandlung der zurückgegebenen Daten. Dadurch wird Anleitung zur effizienten Verarbeitung der Mehrfachdatensätze vorgesehen.

Das obige ist der detaillierte Inhalt vonWie rufe ich gespeicherte Prozeduren mit Parametern im Entität Framework 6 Code-First auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn