Compartilhar via


RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Método

Definição

Sobrecargas

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Executa o SQL especificado no banco de dados e retorna o número de linhas afetadas.

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Executa o SQL especificado no banco de dados e retorna o número de linhas afetadas.

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs

Executa o SQL especificado no banco de dados e retorna o número de linhas afetadas.

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

Parâmetros

databaseFacade
DatabaseFacade

O DatabaseFacade para o contexto.

sql
String

O SQL a ser executado.

parameters
IEnumerable<Object>

Parâmetros a serem usados com o SQL.

Retornos

O número de linhas afetadas.

Comentários

Observe que esse método não inicia uma transação. Para usar esse método com uma transação, primeira chamada BeginTransaction(DatabaseFacade, IsolationLevel) ou UseTransaction.

Observe que o atual ExecutionStrategy não é usado por esse método, pois o SQL pode não ser idempotente e não é executado em uma transação. Um ExecutionStrategy pode ser usado explicitamente, certificando-se de também usar uma transação se o SQL não for idempotente.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada de usuário para proteger contra um ataque de injeção de SQL. Você pode incluir detentores de parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter.

No entanto, nunca passe uma cadeia de caracteres concatenada ou interpolada ($"") com valores não validados fornecidos pelo usuário para esse método. Isso pode expor seu aplicativo a ataques de injeção de SQL. Para usar a sintaxe de cadeia de caracteres interpolada, considere usar ExecuteSql(DatabaseFacade, FormattableString) para criar parâmetros.

Consulte Executando comandos SQL brutos com o EF Core para obter mais informações e exemplos.

Aplica-se a

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs
Origem:
RelationalDatabaseFacadeExtensions.cs

Executa o SQL especificado no banco de dados e retorna o número de linhas afetadas.

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

Parâmetros

databaseFacade
DatabaseFacade

O DatabaseFacade para o contexto.

sql
String

O SQL a ser executado.

parameters
Object[]

Parâmetros a serem usados com o SQL.

Retornos

O número de linhas afetadas.

Comentários

Observe que esse método não inicia uma transação. Para usar esse método com uma transação, primeira chamada BeginTransaction(DatabaseFacade, IsolationLevel) ou UseTransaction.

Observe que o atual ExecutionStrategy não é usado por esse método, pois o SQL pode não ser idempotente e não é executado em uma transação. Um ExecutionStrategy pode ser usado explicitamente, certificando-se de também usar uma transação se o SQL não for idempotente.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada de usuário para proteger contra um ataque de injeção de SQL. Você pode incluir detentores de parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter.

No entanto, nunca passe uma cadeia de caracteres concatenada ou interpolada ($"") com valores não validados fornecidos pelo usuário para esse método. Isso pode expor seu aplicativo a ataques de injeção de SQL. Para usar a sintaxe de cadeia de caracteres interpolada, considere usar ExecuteSql(DatabaseFacade, FormattableString) para criar parâmetros.

Consulte Executando comandos SQL brutos com o EF Core para obter mais informações e exemplos.

Aplica-se a