RelationalDatabaseFacadeExtensions.ExecuteSqlAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Ejecuta el SQL especificado en la base de datos y devuelve el número de filas afectadas.
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)
Parámetros
- databaseFacade
- DatabaseFacade
para DatabaseFacade el contexto.
Cadena interpolada que representa una consulta SQL con parámetros.
- cancellationToken
- CancellationToken
que CancellationToken se va a observar mientras espera a que se complete la tarea.
Devoluciones
Tarea que representa la operación asincrónica. El resultado de la tarea es el número de filas afectadas.
Excepciones
Si se cancela CancellationToken.
Comentarios
Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction.
Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. Se ExecutionStrategy puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.
Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de código SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en dbParameter.
Consulte Ejecución de comandos SQL sin formato con EF Core para obtener más información y ejemplos.