RelationalDatabaseFacadeExtensions.ExecuteSqlAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem.
public static System.Threading.Tasks.Task<int> ExecuteSqlAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql, System.Threading.CancellationToken cancellationToken = default);
static member ExecuteSqlAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlAsync (databaseFacade As DatabaseFacade, sql As FormattableString, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)
Parametry
- databaseFacade
- DatabaseFacade
Element DatabaseFacade dla kontekstu.
Ciąg interpolowany reprezentujący zapytanie SQL z parametrami.
- cancellationToken
- CancellationToken
Element CancellationToken do obserwowania podczas oczekiwania na ukończenie zadania.
Zwraca
Zadanie reprezentujące operację asynchroniczną. Wynik zadania to liczba wierszy, których dotyczy problem.
Wyjątki
Jeśli element CancellationToken zostanie anulowany.
Uwagi
Należy pamiętać, że ta metoda nie uruchamia transakcji. Aby użyć tej metody z transakcją, najpierw wywołaj lub BeginTransaction(DatabaseFacade, IsolationLevel)UseTransaction.
Należy pamiętać, że bieżący element ExecutionStrategy nie jest używany przez tę metodę, ponieważ język SQL może nie być idempotentny i nie jest uruchamiany w transakcji. Można ExecutionStrategy go jawnie użyć, upewniając się, że jest również używana transakcja, jeśli język SQL nie jest idempotentny.
Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszystkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić posiadacze miejsc parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie wartości parametrów, które podajesz, zostaną automatycznie przekonwertowane na parametr DbParameter.
Aby uzyskać więcej informacji i przykładów, zobacz Wykonywanie nieprzetworzonych poleceń SQL za pomocą programu EF Core .