Language

RelationalDatabaseFacadeExtensions.SqlQuery<TResult> メソッド

定義

生の SQL クエリに基づいて LINQ クエリを作成します。このクエリは、データベース プロバイダーによってネイティブにサポートされているスカラー型の結果セットを返します。

public static System.Linq.IQueryable<TResult> SqlQuery<TResult>(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);
static member SqlQuery : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQuery(Of TResult) (databaseFacade As DatabaseFacade, sql As FormattableString) As IQueryable(Of TResult)

型パラメーター

TResult

パラメーター

databaseFacade
DatabaseFacade

コンテキストの DatabaseFacade 。

sql
FormattableString

パラメーターを含む SQL クエリを表す挿入文字列。

戻り値

IQueryable<TResult>

挿入文字列 SQL クエリを表す IQueryable<T> 。

注釈

データベース プロバイダーでネイティブにサポートされていない戻り値の型でこのメソッドを使用するには、 DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) メソッドを使用します。

返される IQueryable<T> は、LINQ を使用してより複雑なクエリを作成することで構成できます。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransactionを呼び出します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。

詳細と例については、 EF Core を使用した生 SQL コマンドの実行 を参照してください。

適用対象