Sdílet prostřednictvím


RelationalDatabaseFacadeExtensions.ExecuteSqlRawAsync Metoda

Definice

Přetížení

ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků.

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

Kontext DatabaseFacade .

sql
String

SQL, který se má spustit.

parameters
IEnumerable<Object>

Parametry, které se mají použít s SQL.

cancellationToken
CancellationToken

K CancellationToken pozorování při čekání na dokončení úlohy.

Návraty

Úloha, která představuje asynchronní operaci. Výsledek úkolu je počet ovlivněných řádků.

Výjimky

Poznámky

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, nejprve zavolejte BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction.

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní.

Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter.

Nikdy však do této metody nepředávejte zřetězený nebo interpolovaný řetězec ($"") s neověřenými hodnotami zadanými uživatelem. To může vaši aplikaci vystavit útokům prostřednictvím injektáže SQL. Pokud chcete použít syntaxi interpolovaných řetězců, zvažte použití ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) parametru k vytvoření parametrů.

Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL pomocí EF Core .

Platí pro

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků.

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

Kontext DatabaseFacade .

sql
String

SQL, který se má spustit.

parameters
Object[]

Parametry, které se mají použít s SQL.

Návraty

Úloha, která představuje asynchronní operaci. Výsledek úkolu je počet ovlivněných řádků.

Poznámky

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, nejprve zavolejte BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction.

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. Je ExecutionStrategy možné použít explicitně a nezapomeňte také použít transakci, pokud SQL není idempotentní.

Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter.

Nikdy však do této metody nepředávejte zřetězený nebo interpolovaný řetězec ($"") s neověřenými hodnotami zadanými uživatelem. To může vaši aplikaci vystavit útokům prostřednictvím injektáže SQL. Pokud chcete použít syntaxi interpolovaných řetězců, zvažte použití ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) parametru k vytvoření parametrů.

Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL pomocí EF Core .

Platí pro

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků.

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

Kontext DatabaseFacade .

sql
String

SQL, který se má spustit.

cancellationToken
CancellationToken

K CancellationToken pozorování při čekání na dokončení úlohy.

Návraty

Úloha, která představuje asynchronní operaci. Výsledek úkolu je počet ovlivněných řádků.

Výjimky

Poznámky

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, nejprve zavolejte BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction.

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. Je ExecutionStrategy možné použít explicitně a nezapomeňte také použít transakci, pokud SQL není idempotentní.

Do této metody nikdy nepředávejte zřetězený nebo interpolovaný řetězec ($"") s neověřenými hodnotami zadanými uživatelem. To může vaši aplikaci vystavit útokům prostřednictvím injektáže SQL.

Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL pomocí EF Core .

Platí pro