Jazyk

RelationalDatabaseFacadeExtensions.ExecuteSqlAsync Metoda

Definice

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

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

Kontext DatabaseFacade .

sql
FormattableString

Interpolovaný řetězec představující dotaz SQL s parametry.

cancellationToken
CancellationToken

A CancellationToken , která se má sledovat při čekání na dokončení úkolu.

Návraty

Úloha, která představuje asynchronní operaci. Výsledkem ú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í, první volání 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. Lze ExecutionStrategy použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny zadané hodnoty parametrů se automaticky převedou na DbParameter.

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

Platí pro