Udostępnij za pośrednictwem


DbContext.SaveChangesAsync Metoda

Definicja

Przeciążenia

SaveChangesAsync(Boolean, CancellationToken)

Zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazie danych.

SaveChangesAsync(CancellationToken)

Zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazie danych.

SaveChangesAsync(Boolean, CancellationToken)

Zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazie danych.

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)

Parametry

acceptAllChangesOnSuccess
Boolean

Wskazuje, czy AcceptAllChanges() jest wywoływana po pomyślnym wysłaniu zmian do bazy danych.

cancellationToken
CancellationToken

Element CancellationToken do obserwowania podczas oczekiwania na ukończenie zadania.

Zwraca

Zadanie reprezentujące operację zapisywania asynchronicznego. Wynik zadania zawiera liczbę wpisów stanu zapisanych w bazie danych.

Wyjątki

Wystąpił błąd podczas zapisywania w bazie danych.

Wystąpiło naruszenie współbieżności podczas zapisywania w bazie danych. Naruszenie współbieżności występuje, gdy wystąpiła nieoczekiwana liczba wierszy podczas zapisywania. Jest to zwykle spowodowane tym, że dane w bazie danych zostały zmodyfikowane od momentu załadowania ich do pamięci.

Jeśli element CancellationToken zostanie anulowany.

Uwagi

Ta metoda spowoduje automatyczne wywołanie DetectChanges() w celu odnalezienia wszelkich zmian w wystąpieniach jednostki przed zapisaniem w bazowej bazie danych. Można to wyłączyć za pomocą polecenia AutoDetectChangesEnabled.

Program Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu dbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. W związku z tym zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykładów, zobacz Unikanie problemów z wątkami dbContext .

Aby uzyskać więcej informacji i przykładów, zobacz Zapisywanie danych w programie EF Core .

Dotyczy

SaveChangesAsync(CancellationToken)

Zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazie danych.

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)

Parametry

cancellationToken
CancellationToken

Element CancellationToken do obserwowania podczas oczekiwania na ukończenie zadania.

Zwraca

Zadanie reprezentujące operację zapisywania asynchronicznego. Wynik zadania zawiera liczbę wpisów stanu zapisanych w bazie danych.

Wyjątki

Wystąpił błąd podczas zapisywania w bazie danych.

Wystąpiło naruszenie współbieżności podczas zapisywania w bazie danych. Naruszenie współbieżności występuje, gdy wystąpiła nieoczekiwana liczba wierszy podczas zapisywania. Jest to zwykle spowodowane tym, że dane w bazie danych zostały zmodyfikowane od momentu załadowania ich do pamięci.

Jeśli element CancellationToken zostanie anulowany.

Uwagi

Ta metoda spowoduje automatyczne wywołanie DetectChanges() w celu odnalezienia wszelkich zmian w wystąpieniach jednostki przed zapisaniem w bazowej bazie danych. Można to wyłączyć za pomocą polecenia AutoDetectChangesEnabled.

Program Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu dbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. W związku z tym zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykładów, zobacz Unikanie problemów z wątkami dbContext .

Aby uzyskać więcej informacji i przykładów, zobacz Zapisywanie danych w programie EF Core .

Dotyczy