EF コードのストアド プロシージャで DbContext.Database.SqlQuery<TElement>(sql, params)
を最初に使用する
DbContext.Database.SqlQuery<TElement>(sql, params)
を使用してパラメーターを指定してストアド プロシージャを実行すると、問題が発生する可能性があります。
問題:
このアプローチをパラメータを必要とするストアド プロシージャで使用すると、次のようなエラー メッセージが表示されることがよくあります。
<code>"Procedure or function 'mySpName' expects parameter '@param1', which was not supplied."</code>
解決策:
解決策には、SqlParameter
オブジェクトを正しい構造で提供することが含まれます。
<code class="language-csharp">context.Database.SqlQuery<MyEntityType>( "mySpName @param1, @param2, @param3", new SqlParameter("param1", param1), new SqlParameter("param2", param2), new SqlParameter("param3", param3) );</code>
SqlParameter
インスタンスを提供すると、ストアド プロシージャが必要なパラメータを確実に受け取り、実行とデータの取得が成功します。
以上がEF コードファーストでストアド プロシージャ パラメーターとともに DbContext.Database.SqlQuery を正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。