DbSet<TEntity>.SqlQuery(String, Object[]) 方法

定义

创建一个原始 SQL 查询,该查询将返回此集中的实体。 默认情况下,上下文跟踪返回的实体;这可以通过对返回的 调用 AsNoTracking DbSqlQuery<TEntity> 进行更改。 请注意,返回的实体始终是此集的类型,绝不是派生类型。 如果查询的一个或多个表可能包含其他实体类型的数据,则必须编写适当的 SQL 查询以确保只返回适当类型的实体。

与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter。 上下文。Blogs.SqlQuery (“SELECT * FROM dbo.文章 WHERE Author = @p0“, userSuppliedAuthor) ;或者,还可以构造 DbParameter 并将其提供给 SqlQuery。 这样可以在 SQL 查询字符串中使用命名参数。 上下文。Blogs.SqlQuery (“SELECT * FROM dbo.文章 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> 查询时将执行查询的 对象。

适用于