ホームページ >バックエンド開発 >C++ >EF コードファーストでストアド プロシージャとパラメーターとともに DbContext.Database.SqlQuery を正しく使用する方法

EF コードファーストでストアド プロシージャとパラメーターとともに DbContext.Database.SqlQuery を正しく使用する方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-18 19:07:08677ブラウズ

How to Correctly Use DbContext.Database.SqlQuery with Stored Procedures and Parameters in EF Code First?

EF Code First CTP5 での DbContext.Database.SqlQuery(sql, params) メソッドとストアド プロシージャの使用

Entity Framework Code First CTP5 では、データベースに対して生の SQL クエリを実行する方法を提供する DbContext.Database.SqlQuery<T>(sql, params) メソッドが導入されています。ただし、パラメータを持つストアド プロシージャでこのメソッドを使用しようとすると、開発者はパラメータが指定されていないことを示す例外が発生する可能性があります。

解決策:

パラメーターを必要とするストアド プロシージャで DbContext.Database.SqlQuery<T>(sql, params) を正常に使用するには、パラメーターを SqlParameter オブジェクトとして指定する必要があります。正しい構文は次のとおりです:

<code class="language-csharp">context.Database.SqlQuery<我的实体类型>(
    "我的存储过程名称 @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);</code>

この例では、「my ストアド プロシージャ名」はストアド プロシージャの名前、「param1」、「param2」、「param3」はストアド プロシージャ内の対応するパラメータに渡される値です。 。この方法でパラメーターを指定すると、SqlQuery メソッドは、実行するストアド プロシージャに値を正しく提供できます。

以上がEF コードファーストでストアド プロシージャとパラメーターとともに DbContext.Database.SqlQuery を正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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