1. ホーム
  2. entity-framework

[解決済み】DbContext.Database.ExecuteSqlCommandメソッドにパラメータを渡すにはどうしたらよいですか?

2022-04-03 01:17:28

質問

Entity FrameworkでSQLコマンドを直接実行する正当なニーズがあるとします。私は、私のSQL文の中でパラメータを使用する方法を見つけるのに苦労しています。次の例(私の本当の例ではない)はうまくいきません。

var firstName = "John";
var id = 12;
var sql = @"Update [User] SET FirstName = @FirstName WHERE Id = @Id";
ctx.Database.ExecuteSqlCommand(sql, firstName, id);

ExecuteSqlCommand メソッドでは、ADO.Net のような名前付きパラメータを渡すことができず、また このメソッドのドキュメント は、パラメータ化されたクエリを実行する方法を示す例を示していません。

パラメータを正しく指定するには?

解決方法は?

これが有効であることがわかった。

var firstName = "John";
var id = 12;
var sql = "Update [User] SET FirstName = {0} WHERE Id = {1}";
ctx.Database.ExecuteSqlCommand(sql, firstName, id);