Database.ExecuteSqlCommandAsync メソッド (String, CancellationToken, Object[])
[このページは、Entity Framework 6 に関するページです。最新バージョンは、'Entity Framework' NuGet パッケージとして入手できます。Entity Framework の詳細については、msdn.com/data/ef を参照してください。]
データベースに対して指定した DDL/DML コマンドを非同期に実行します。 SQL を受け入れる API と同様に、すべてのユーザー入力をパラメーター化して、SQL インジェクション攻撃から保護することが重要です。 パラメーターのプレースホルダーを SQL クエリ文字列に含めて、パラメーター値を追加の引数として指定することができます。 指定したパラメーター値はすべて、DbParameter に自動的に変換されます。 context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); または、DbParameter を構築して、それを SqlQuery に指定することもできます。 これにより、SQL クエリ文字列で名前付きパラメーターを使用できます。 context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
名前空間: System.Data.Entity
アセンブリ: EntityFramework (EntityFramework.dll 内)
構文
'宣言
Public Function ExecuteSqlCommandAsync ( _
sql As String, _
cancellationToken As CancellationToken, _
ParamArray parameters As Object() _
) As Task(Of Integer)
'使用
Dim instance As Database
Dim sql As String
Dim cancellationToken As CancellationToken
Dim parameters As Object()
Dim returnValue As Task(Of Integer)
returnValue = instance.ExecuteSqlCommandAsync(sql, _
cancellationToken, parameters)
public Task<int> ExecuteSqlCommandAsync(
string sql,
CancellationToken cancellationToken,
params Object[] parameters
)
public:
Task<int>^ ExecuteSqlCommandAsync(
String^ sql,
CancellationToken cancellationToken,
... array<Object^>^ parameters
)
member ExecuteSqlCommandAsync :
sql:string *
cancellationToken:CancellationToken *
parameters:Object[] -> Task<int>
public function ExecuteSqlCommandAsync(
sql : String,
cancellationToken : CancellationToken,
... parameters : Object[]
) : Task<int>
パラメーター
- sql
型 : System.String
コマンド文字列。
- cancellationToken
型 : System.Threading.CancellationToken
タスクの完了を待機しているときに観察する CancellationToken。
- parameters
型 : System.Object[]
コマンド文字列に適用するパラメーター。
戻り値
型 : System.Threading.Tasks.Task<Int32>
非同期操作を表すタスク。タスクの結果には、コマンド実行後にデータベースによって返される結果が示されます。
解説
同じコンテキスト インスタンスに対する複数のアクティブ操作はサポートされません。 このコンテキストで別のメソッドを呼び出す前に、非同期操作が完了したことを確認するために await を使用します。 既存のローカル トランザクションがない場合は、新しいトランザクションを使用してコマンドが実行されます。