1. ホーム
  2. c#

[解決済み] ストアドプロシージャでDbContext.Database.SqlQuery<TElement>(sql, params)を使用するにはどうすればよいですか?EFコードファーストCTP5

2022-04-05 12:27:32

質問

3つのパラメータを持つストアドプロシージャがあるのですが、結果を返すために以下のような使い方をしようとしています。

context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);

最初、私は SqlParameter オブジェクトをパラメータとして指定しますが、これはうまくいかず SqlException というメッセージが表示されます。

プロシージャまたは関数 'mySpName' はパラメータ '@param1' を予期していますが、指定されていません。

そこで質問ですが、パラメータを期待するストアドプロシージャでこのメソッドを使用するにはどうすればよいのでしょうか?

ありがとうございます。

解決方法は?

SqlParameterインスタンスは、以下の方法で供給する必要があります。

context.Database.SqlQuery<myEntityType>(
    "mySpName @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);