RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
| Název | Description |
|---|---|
| ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
Provede daný SQL pro databázi a vrátí počet ovlivněných řádků. |
| ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
Provede daný SQL pro databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)
Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object?> parameters);
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object> parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * seq<obj> -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, parameters As IEnumerable(Of Object)) As Integer
Parametry
- databaseFacade
- DatabaseFacade
Kontext DatabaseFacade .
- sql
- String
SQL, který se má provést.
- parameters
- IEnumerable<Object>
Parametry, které se mají použít s SQL.
Návraty
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í, 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.
Nikdy však nepředávejte zřetězený nebo interpolovaný řetězec ($"") s neověřenými hodnotami zadanými uživatelem do této metody. Tím se může vaše aplikace vystavit útokům prostřednictvím injektáže SQL. Pokud chcete použít interpolovanou syntaxi řetězce, zvažte použití ExecuteSql(DatabaseFacade, FormattableString) k vytvoření parametrů.
Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL s EF Core .
Platí pro
ExecuteSqlRaw(DatabaseFacade, String, Object[])
Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object?[] parameters);
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As Integer
Parametry
- databaseFacade
- DatabaseFacade
Kontext DatabaseFacade .
- sql
- String
SQL, který se má provést.
- parameters
- Object[]
Parametry, které se mají použít s SQL.
Návraty
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í, 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.
Nikdy však nepředávejte zřetězený nebo interpolovaný řetězec ($"") s neověřenými hodnotami zadanými uživatelem do této metody. Tím se může vaše aplikace vystavit útokům prostřednictvím injektáže SQL. Pokud chcete použít interpolovanou syntaxi řetězce, zvažte použití ExecuteSql(DatabaseFacade, FormattableString) k vytvoření parametrů.
Další informace a příklady najdete v tématu Spouštění nezpracovaných příkazů SQL s EF Core .