DbSet<TEntity>.SqlQuery メソッド
[このページは、Entity Framework 6 に関するページです。最新バージョンは、'Entity Framework' NuGet パッケージとして入手できます。Entity Framework の詳細については、msdn.com/data/ef を参照してください。]
このセットにエンティティを返す生の SQL クエリを作成します。 既定では、返されたエンティティは、コンテキストによって追跡されます。この動作は、返された DbSqlQuery<TEntity> で AsNoTracking を呼び出して変更できます。 返されるエンティティの型は常にこのセットの型であって、派生型ではないという点に注意してください。 照会先の 1 つまたは複数のテーブルにその他のエンティティ型のデータが格納されている場合、正しい型のエンティティだけが返されるように、適切に SQL クエリを作成する必要があります。 SQL を受け入れる API と同様に、すべてのユーザー入力をパラメーター化して、SQL インジェクション攻撃から保護することが重要です。 パラメーターのプレースホルダーを SQL クエリ文字列に含めて、パラメーター値を追加の引数として指定することができます。 指定したパラメーター値はすべて、DbParameter に自動的に変換されます。 context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); または、DbParameter を構築して、それを SqlQuery に指定することもできます。 これにより、SQL クエリ文字列で名前付きパラメーターを使用できます。 context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
名前空間: System.Data.Entity
アセンブリ: EntityFramework (EntityFramework.dll 内)
構文
'宣言
Public Overridable Function SqlQuery ( _
sql As String, _
ParamArray parameters As Object() _
) As DbSqlQuery(Of TEntity)
'使用
Dim instance As DbSet
Dim sql As String
Dim parameters As Object()
Dim returnValue As DbSqlQuery(Of TEntity)
returnValue = instance.SqlQuery(sql, parameters)
public virtual DbSqlQuery<TEntity> SqlQuery(
string sql,
params Object[] parameters
)
public:
virtual DbSqlQuery<TEntity>^ SqlQuery(
String^ sql,
... array<Object^>^ parameters
)
abstract SqlQuery :
sql:string *
parameters:Object[] -> DbSqlQuery<'TEntity>
override SqlQuery :
sql:string *
parameters:Object[] -> DbSqlQuery<'TEntity>
public function SqlQuery(
sql : String,
... parameters : Object[]
) : DbSqlQuery<TEntity>
パラメーター
- sql
型 : System.String
SQL クエリ文字列。
- parameters
型 : System.Object[]
SQL クエリ文字列に適用するパラメーター。 出力パラメーターを使用する場合は、結果が完全に読み取られるまでそれらの値は利用できません。 これは、DbDataReader の基になっている動作のためです。詳しくは https://go.microsoft.com/fwlink/?LinkID=398589 を参照してください。
戻り値
型 : System.Data.Entity.Infrastructure.DbSqlQuery<TEntity>
列挙されたときにクエリを実行する DbSqlQuery<TEntity> オブジェクト。