RelationalDatabaseFacadeExtensions.ExecuteSqlRaw メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
データベースに対して指定された SQL を実行し、影響を受けた行数を返します。 |
ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
データベースに対して指定された SQL を実行し、影響を受けた行数を返します。 |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)
データベースに対して指定された SQL を実行し、影響を受けた行数を返します。
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
パラメーター
- databaseFacade
- DatabaseFacade
DatabaseFacadeコンテキストの 。
- sql
- String
実行する SQL。
- parameters
- IEnumerable<Object>
SQL で使用するパラメーター。
戻り値
影響を受けた行の数。
注釈
このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に または を呼び出 BeginTransaction(DatabaseFacade, IsolationLevel) します UseTransaction。
SQL はべき等ではない可能性があり、トランザクションでは実行されないため、現在 ExecutionStrategy の は、このメソッドでは使用されないことに注意してください。 を ExecutionStrategy 明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。
SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。
ただし、検証されていないユーザー指定の値を持つ連結文字列または補間文字列 ($""
) をこのメソッドに渡すことはありません。 そうすることで、アプリケーションが SQL インジェクション攻撃にさらされる可能性があります。 補間された文字列構文を使用するには、 を使用して ExecuteSql(DatabaseFacade, FormattableString) パラメーターを作成することを検討してください。
詳細と例については、「 EF Core を使用した生 SQL コマンドの実行 」を参照してください。
適用対象
ExecuteSqlRaw(DatabaseFacade, String, Object[])
データベースに対して指定された SQL を実行し、影響を受けた行数を返します。
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
パラメーター
- databaseFacade
- DatabaseFacade
DatabaseFacadeコンテキストの 。
- sql
- String
実行する SQL。
- parameters
- Object[]
SQL で使用するパラメーター。
戻り値
影響を受けた行の数。
注釈
このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に または を呼び出 BeginTransaction(DatabaseFacade, IsolationLevel) します UseTransaction。
SQL はべき等ではない可能性があり、トランザクションでは実行されないため、現在 ExecutionStrategy の は、このメソッドでは使用されないことに注意してください。 を ExecutionStrategy 明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。
SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。
ただし、検証されていないユーザー指定の値を持つ連結文字列または補間文字列 ($""
) をこのメソッドに渡すことはありません。 そうすることで、アプリケーションが SQL インジェクション攻撃にさらされる可能性があります。 補間された文字列構文を使用するには、 を使用して ExecuteSql(DatabaseFacade, FormattableString) パラメーターを作成することを検討してください。
詳細と例については、「 EF Core を使用した生 SQL コマンドの実行 」を参照してください。
適用対象
Entity Framework