RelationalDatabaseFacadeExtensions.ExecuteSqlAsync 方法

定义

针对数据库执行给定的 SQL 并返回受影响的行数。

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)

参数

databaseFacade
DatabaseFacade

DatabaseFacade上下文的 。

sql
FormattableString

表示具有参数的 SQL 查询的内插字符串。

cancellationToken
CancellationToken

等待 CancellationToken 任务完成时要观察的 。

返回

表示异步操作的任务。 任务结果是受影响的行数。

例外

注解

请注意,此方法不会启动事务。 若要将此方法用于事务,请首先调用 BeginTransaction(DatabaseFacade, IsolationLevel)UseTransaction

请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,并且不会在事务中运行。 可以显式使用 , ExecutionStrategy 如果 SQL 不是幂等的,请确保也使用事务。

与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数位置持有者,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter。

有关详细信息和示例 ,请参阅使用 EF Core 执行原始 SQL 命令

适用于