DbContext.SaveChangesAsync メソッド

定義

オーバーロード

SaveChangesAsync(Boolean, CancellationToken)

このコンテキストで行われたすべての変更をデータベースに保存します。

このメソッドは、基になるデータベースに保存する前に、エンティティ インスタンスへの変更を検出するために自動的に呼び出 DetectChanges() されます。 これは、次の方法で AutoDetectChangesEnabled無効にすることができます。

Entity Framework Core では、同じ DbContext インスタンスで複数の並列操作を実行することはできません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext スレッドの問題を回避する 」を参照してください。

SaveChangesAsync(CancellationToken)

このコンテキストで行われたすべての変更をデータベースに保存します。

このメソッドは、基になるデータベースに保存する前に、エンティティ インスタンスへの変更を検出するために自動的に呼び出 DetectChanges() されます。 これは、次の方法で AutoDetectChangesEnabled無効にすることができます。

Entity Framework Core では、同じ DbContext インスタンスで複数の並列操作を実行することはできません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext スレッドの問題を回避する 」を参照してください。

SaveChangesAsync(Boolean, CancellationToken)

このコンテキストで行われたすべての変更をデータベースに保存します。

このメソッドは、基になるデータベースに保存する前に、エンティティ インスタンスへの変更を検出するために自動的に呼び出 DetectChanges() されます。 これは、次の方法で AutoDetectChangesEnabled無効にすることができます。

Entity Framework Core では、同じ DbContext インスタンスで複数の並列操作を実行することはできません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext スレッドの問題を回避する 」を参照してください。

public virtual System.Threading.Tasks.Task<int> SaveChangesAsync (bool acceptAllChangesOnSuccess, System.Threading.CancellationToken cancellationToken = default);
abstract member SaveChangesAsync : bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.SaveChangesAsync : bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overridable Function SaveChangesAsync (acceptAllChangesOnSuccess As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)

パラメーター

acceptAllChangesOnSuccess
Boolean

変更がデータベースに正常に送信された後に呼び出されるかどうかを AcceptAllChanges() 示します。

cancellationToken
CancellationToken

A CancellationToken タスクの完了を待っている間に観察します。

戻り値

Task<Int32>

非同期の保存操作を表すタスク。 タスクの結果には、データベースに書き込まれた状態エントリの数が含まれます。

例外

データベースへの保存中にエラーが発生しました。

データベースへの保存中にコンカレンシー違反が発生しました。 コンカレンシー違反は、保存中に予期しない数の行が影響を受けると発生します。 これは通常、データベース内のデータがメモリに読み込まれた後に変更されているためです。

CancellationToken が取り消されている場合。

注釈

詳細については、「 EF Core でのデータの保存 」を参照してください。

適用対象

SaveChangesAsync(CancellationToken)

このコンテキストで行われたすべての変更をデータベースに保存します。

このメソッドは、基になるデータベースに保存する前に、エンティティ インスタンスへの変更を検出するために自動的に呼び出 DetectChanges() されます。 これは、次の方法で AutoDetectChangesEnabled無効にすることができます。

Entity Framework Core では、同じ DbContext インスタンスで複数の並列操作を実行することはできません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext スレッドの問題を回避する 」を参照してください。

public virtual System.Threading.Tasks.Task<int> SaveChangesAsync (System.Threading.CancellationToken cancellationToken = default);
abstract member SaveChangesAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.SaveChangesAsync : System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overridable Function SaveChangesAsync (Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)

パラメーター

cancellationToken
CancellationToken

A CancellationToken タスクの完了を待っている間に観察します。

戻り値

Task<Int32>

非同期の保存操作を表すタスク。 タスクの結果には、データベースに書き込まれた状態エントリの数が含まれます。

例外

データベースへの保存中にエラーが発生しました。

データベースへの保存中にコンカレンシー違反が発生しました。 コンカレンシー違反は、保存中に予期しない数の行が影響を受けると発生します。 これは通常、データベース内のデータがメモリに読み込まれた後に変更されているためです。

CancellationToken が取り消されている場合。

注釈

詳細については、「 EF Core でのデータの保存 」を参照してください。

適用対象