Udostępnij za pośrednictwem


RelationalDatabaseFacadeExtensions.ExecuteSqlAsync Metoda

Definicja

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.

sql
FormattableString

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 .

Dotyczy