DbSet<TEntity>.SqlQuery(String, Object[]) メソッド

定義

このセットにエンティティを返す生の SQL クエリを作成します。 既定では、返されるエンティティはコンテキストによって追跡されます。これは、返された で AsNoTracking を DbSqlQuery<TEntity> 呼び出すことによって変更できます。 返されるエンティティは常にこのセットの型であり、派生型ではありません。 照会先の 1 つまたは複数のテーブルにその他のエンティティ型のデータが格納されている場合、正しい型のエンティティだけが返されるように、適切に SQL クエリを作成する必要があります。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

public virtual System.Data.Entity.Infrastructure.DbSqlQuery<TEntity> SqlQuery (string sql, params object[] parameters);
abstract member SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery<'Entity (requires 'Entity : null)>
override this.SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery<'Entity (requires 'Entity : null)>
Public Overridable Function SqlQuery (sql As String, ParamArray parameters As Object()) As DbSqlQuery(Of TEntity)

パラメーター

sql
String

SQL クエリ文字列。

parameters
Object[]

SQL クエリ文字列に適用するパラメーター。 出力パラメーターが使用されている場合、結果が完全に読み取られるまで値は使用できません。 これは、DbDataReader の基になる動作が原因です。詳細については、「」を参照してください http://go.microsoft.com/fwlink/?LinkID=398589

戻り値

DbSqlQuery<TEntity>列挙時にクエリを実行するオブジェクト。

適用対象