RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate.
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
Parametri
- databaseFacade
- DatabaseFacade
Oggetto DatabaseFacade per il contesto.
- sql
- String
SQL da eseguire.
- parameters
- IEnumerable<Object>
Parametri da usare con SQL.
Restituisce
Numero di righe interessate.
Commenti
Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction.
Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un ExecutionStrategy oggetto può essere usato in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input dell'utente per proteggersi da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri forniti verranno convertiti automaticamente in dbParameter.
Tuttavia, non passare mai una stringa concatenata o interpolata ($""
) con valori non convalidati forniti dall'utente in questo metodo. In questo modo l'applicazione può esporre l'applicazione agli attacchi SQL injection. Per usare la sintassi di stringa interpolata, è consigliabile usare ExecuteSql(DatabaseFacade, FormattableString) per creare parametri.
Per altre informazioni ed esempi, vedere Esecuzione di comandi SQL non elaborati con EF Core .
Si applica a
ExecuteSqlRaw(DatabaseFacade, String, Object[])
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate.
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
Parametri
- databaseFacade
- DatabaseFacade
Oggetto DatabaseFacade per il contesto.
- sql
- String
SQL da eseguire.
- parameters
- Object[]
Parametri da usare con SQL.
Restituisce
Numero di righe interessate.
Commenti
Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction.
Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un ExecutionStrategy oggetto può essere usato in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input dell'utente per proteggersi da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri forniti verranno convertiti automaticamente in dbParameter.
Tuttavia, non passare mai una stringa concatenata o interpolata ($""
) con valori non convalidati forniti dall'utente in questo metodo. In questo modo l'applicazione può esporre l'applicazione agli attacchi SQL injection. Per usare la sintassi di stringa interpolata, è consigliabile usare ExecuteSql(DatabaseFacade, FormattableString) per creare parametri.
Per altre informazioni ed esempi, vedere Esecuzione di comandi SQL non elaborati con EF Core .