ホームページ >バックエンド開発 >C++ >エンティティフレームワーク6コードファーストのパラメーターを使用してストアドプロシージャを呼び出す方法は?

エンティティフレームワーク6コードファーストのパラメーターを使用してストアドプロシージャを呼び出す方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-29 01:46:13720ブラウズ

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

エンティティフレームワーク6コードファースト:パラメーターを使用してストアドプロシージャを効率的に呼び出す

エンティティフレームワーク6のコードファーストアプローチでは、複雑なデータベースの相互作用にはストアドプロシージャの活用が不可欠です。 一般的な課題には、ストアドプロシージャを効果的に呼び出し、パラメーターの合格を管理することが含まれます。

部門を挿入するように設計されたストアドプロシージャで説明しましょう:

このストアドプロシージャをエンティティフレームワークコンテキストに統合するには、モデル内にマップします。

<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>
このマッピングを使用すると、dbcontextからストアドプロシージャを直接呼び出すことができます:

<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>
複数の結果セットを返すストアドプロシージャについては(例に示すように)、返されたデータの処理におけるベストプラクティスについては、Microsoftの「複数の結果セットを備えたストアドプロシージャ」に関するドキュメントを参照してください。 これにより、複数のデータセットを効率的に処理するためのガイダンスが提供されます。

以上がエンティティフレームワーク6コードファーストのパラメーターを使用してストアドプロシージャを呼び出す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。