EF Code First CTP5 での DbContext.Database.SqlQuery
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 サイトの他の関連記事を参照してください。