ホームページ > データベース > mysql チュートリアル > ストアド プロシージャ パラメーターで DbContext.Database.SqlQuery を正しく使用する方法

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

Susan Sarandon
リリース: 2025-01-17 12:06:14
オリジナル
533 人が閲覧しました

How to Correctly Use DbContext.Database.SqlQuery with Stored Procedure Parameters?

EF コードファースト CTP5: ストアド プロシージャ パラメーターで DbContext.Database.SqlQuery を使用する(sql, params)

質問:

開発者は、ストアド プロシージャで DbContext.Database.SqlQuery メソッドを使用しようとすると、パラメーターを指定する際に課題に直面します。 SqlParameter オブジェクトを使用すると、パラメーターが期待どおりに提供されなかったことを示す SqlException がスローされます。

答え:

パラメーターを必要とするストアド プロシージャで DbContext.Database.SqlQuery メソッドを正常に使用するには、次のアプローチを使用する必要があります。

解決策:

SqlParameter オブジェクトをパラメーターとして直接渡す代わりに、SQL クエリ文字列を変更して、「@」記号で始まるパラメーター名を含めます。次に、必要なパラメーターごとに SqlParameter インスタンスを作成して割り当て、追加パラメーターとして提供します。

コード例:

次のコード スニペットは、正しい使用法を示しています:

<code class="language-c#">context.Database.SqlQuery<我的实体类型>(
    "mySpName @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);</code>
ログイン後にコピー

この更新された構文により、SqlException の問題が解決され、DbContext.Database.SqlQuery メソッドを使用してストアド プロシージャから目的の結果を取得できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート