Condividi tramite


RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Metodo

Definizione

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>)

Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs

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[])

Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs
Origine:
RelationalDatabaseFacadeExtensions.cs

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 .

Si applica a