RelationalDatabaseFacadeExtensions.ExecuteSqlRawAsync 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.
Przeciążenia
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken) |
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem. |
ExecuteSqlRawAsync(DatabaseFacade, String, Object[]) |
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem. |
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem. |
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem.
public static System.Threading.Tasks.Task<int> ExecuteSqlRawAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object> parameters, System.Threading.CancellationToken cancellationToken = default);
static member ExecuteSqlRawAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * seq<obj> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlRawAsync (databaseFacade As DatabaseFacade, sql As String, parameters As IEnumerable(Of Object), Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)
Parametry
- databaseFacade
- DatabaseFacade
Element DatabaseFacade dla kontekstu.
- sql
- String
Sql do wykonania.
- parameters
- IEnumerable<Object>
Parametry do użycia z bazą danych SQL.
- cancellationToken
- CancellationToken
Element CancellationToken do obserwowania podczas oczekiwania na ukończenie zadania.
Zwraca
Zadanie reprezentujące operację asynchroniczną. Wynikiem zadania jest 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ą, pierwsze wywołanie BeginTransaction(DatabaseFacade, IsolationLevel) lub UseTransaction.
Należy pamiętać, że bieżący ExecutionStrategy element nie jest używany przez tę metodę, ponieważ program SQL może nie być idempotentny i nie jest uruchamiany w transakcji. Można użyć metody ExecutionStrategy jawnie, upewniając się, że używasz również transakcji, jeśli sql nie jest idempotentny.
Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie 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ć symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter.
Jednak nigdy nie należy przekazywać połączonych ani interpolowanych ciągów ($""
) z nieweryfikowanymi wartościami dostarczonymi przez użytkownika do tej metody. Może to spowodować ujawnienie aplikacji ataków polegających na wstrzyknięciu kodu SQL. Aby użyć składni ciągu interpolowanego, rozważ użycie metody ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) do utworzenia parametrów.
Aby uzyskać więcej informacji i przykłady, zobacz Wykonywanie nieprzetworzonych poleceń SQL za pomocą programu EF Core .
Dotyczy
ExecuteSqlRawAsync(DatabaseFacade, String, Object[])
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem.
public static System.Threading.Tasks.Task<int> ExecuteSqlRawAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member ExecuteSqlRawAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlRawAsync (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As Task(Of Integer)
Parametry
- databaseFacade
- DatabaseFacade
Element DatabaseFacade dla kontekstu.
- sql
- String
Sql do wykonania.
- parameters
- Object[]
Parametry do użycia z bazą danych SQL.
Zwraca
Zadanie reprezentujące operację asynchroniczną. Wynikiem zadania jest liczba wierszy, których dotyczy problem.
Uwagi
Należy pamiętać, że ta metoda nie uruchamia transakcji. Aby użyć tej metody z transakcją, pierwsze wywołanie BeginTransaction(DatabaseFacade, IsolationLevel) lub UseTransaction.
Należy pamiętać, że bieżący ExecutionStrategy element nie jest używany przez tę metodę, ponieważ program SQL może nie być idempotentny i nie jest uruchamiany w transakcji. Można ExecutionStrategy go użyć jawnie, upewniając się, że używasz również transakcji, jeśli sql nie jest idempotentny.
Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie 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ć symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter.
Jednak nigdy nie należy przekazywać połączonych ani interpolowanych ciągów ($""
) z nieweryfikowanymi wartościami dostarczonymi przez użytkownika do tej metody. Może to spowodować ujawnienie aplikacji ataków polegających na wstrzyknięciu kodu SQL. Aby użyć składni ciągu interpolowanego, rozważ użycie metody ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) do utworzenia parametrów.
Aby uzyskać więcej informacji i przykłady, zobacz Wykonywanie nieprzetworzonych poleceń SQL za pomocą programu EF Core .
Dotyczy
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)
Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem.
public static System.Threading.Tasks.Task<int> ExecuteSqlRawAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Threading.CancellationToken cancellationToken = default);
static member ExecuteSqlRawAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlRawAsync (databaseFacade As DatabaseFacade, sql As String, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)
Parametry
- databaseFacade
- DatabaseFacade
Element DatabaseFacade dla kontekstu.
- sql
- String
Sql do wykonania.
- cancellationToken
- CancellationToken
Element CancellationToken do obserwowania podczas oczekiwania na ukończenie zadania.
Zwraca
Zadanie reprezentujące operację asynchroniczną. Wynikiem zadania jest 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ą, pierwsze wywołanie BeginTransaction(DatabaseFacade, IsolationLevel) lub UseTransaction.
Należy pamiętać, że bieżący ExecutionStrategy element nie jest używany przez tę metodę, ponieważ program SQL może nie być idempotentny i nie jest uruchamiany w transakcji. Można ExecutionStrategy go użyć jawnie, upewniając się, że używasz również transakcji, jeśli sql nie jest idempotentny.
Nigdy nie przekazuj połączonych lub interpolowanych ciągów ($""
) z nieweryfikowanymi wartościami dostarczonymi przez użytkownika do tej metody. Może to spowodować ujawnienie aplikacji ataków polegających na wstrzyknięciu kodu SQL.
Aby uzyskać więcej informacji i przykłady, zobacz Wykonywanie nieprzetworzonych poleceń SQL za pomocą programu EF Core .