DbContext.Database.SqlQuery
Entity Framework Code First CTP5 では、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>
これにより、パラメーターがストアド プロシージャ内の名前と正しく一致することが保証されます。パラメーター名を明示的に指定すると、「プロシージャまたは関数 'ストアド プロシージャ名' にはパラメーター '@param1' が必要ですが、指定されていませんでした」エラーを回避できます。
このメソッドを使用すると、厳密に型指定された方法でストアド プロシージャを動的にクエリできるため、Entity Framework を使用して複雑なデータベース操作からデータを簡単に取得できるようになります。
以上がDbContext.Database.SqlQuery を使用してストアド プロシージャにパラメータを正しく渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。