語言

RelationalDatabaseFacadeExtensions.ExecuteSqlRawAsync 方法

定義

多載

名稱 Description
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。

ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。

public static System.Threading.Tasks.Task<int> ExecuteSqlRawAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object> parameters, System.Threading.CancellationToken cancellationToken = default);
static member ExecuteSqlRawAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * seq<obj> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlRawAsync (databaseFacade As DatabaseFacade, sql As String, parameters As IEnumerable(Of Object), Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)

參數

databaseFacade
DatabaseFacade

DatabaseFacade內容的 。

sql
String

要執行的 SQL。

parameters
IEnumerable<Object>

要搭配 SQL 使用的參數。

cancellationToken
CancellationToken

等候 CancellationToken 工作完成時要觀察的 。

傳回

代表非同步作業的工作。 工作結果是受影響的資料列數目。

例外狀況

備註

請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction 。

請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 可以明確使用 ExecutionStrategy,如果 SQL 不是等冪性,請務必也使用交易。

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。

不過, 絕對不要 將串連或插補字串 () $"" 未驗證的使用者提供值傳遞至這個方法。 這樣做可能會向 SQL 插入式攻擊公開您的應用程式。 若要使用插補字串語法,請考慮使用 ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) 來建立參數。

如需詳細資訊和範例 ,請參閱使用 EF Core 執行原始 SQL 命令 。

適用於

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。

public static System.Threading.Tasks.Task<int> ExecuteSqlRawAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member ExecuteSqlRawAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlRawAsync (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As Task(Of Integer)

參數

databaseFacade
DatabaseFacade

DatabaseFacade內容的 。

sql
String

要執行的 SQL。

parameters
Object[]

要搭配 SQL 使用的參數。

傳回

代表非同步作業的工作。 工作結果是受影響的資料列數目。

備註

請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction 。

請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 ExecutionStrategy可以明確使用 ,如果 SQL 不是等冪性,請務必也使用交易。

如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。

不過, 絕對不要 將串連或插補字串 () $"" 未驗證的使用者提供值傳遞至這個方法。 這樣做可能會向 SQL 插入式攻擊公開您的應用程式。 若要使用插補字串語法,請考慮使用 ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) 來建立參數。

如需詳細資訊和範例 ,請參閱使用 EF Core 執行原始 SQL 命令 。

適用於

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。

public static System.Threading.Tasks.Task<int> ExecuteSqlRawAsync (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Threading.CancellationToken cancellationToken = default);
static member ExecuteSqlRawAsync : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
<Extension()>
Public Function ExecuteSqlRawAsync (databaseFacade As DatabaseFacade, sql As String, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Integer)

參數

databaseFacade
DatabaseFacade

DatabaseFacade內容的 。

sql
String

要執行的 SQL。

cancellationToken
CancellationToken

等候 CancellationToken 工作完成時要觀察的 。

傳回

代表非同步作業的工作。 工作結果是受影響的資料列數目。

例外狀況

備註

請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction 。

請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 ExecutionStrategy可以明確使用 ,如果 SQL 不是等冪性,請務必也使用交易。

絕對不要 將串連或插補字串 () $"" ,並將未驗證的使用者提供值傳遞至這個方法。 這樣做可能會向 SQL 插入式攻擊公開您的應用程式。

如需詳細資訊和範例 ,請參閱使用 EF Core 執行原始 SQL 命令 。

適用於