Udostępnij za pośrednictwem


RelationalDatabaseFacadeExtensions.ExecuteSqlRawAsync Metoda

Definicja

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 .

Dotyczy