Database.SqlQuery 方法 (Type, String, Object[])

[本页针对的是实体框架版本 6。最新版本以“实体框架”NuGet 包的形式提供。有关实体框架的更多信息,请参见 msdn.com/data/ef。]

创建一个原始 SQL 查询,该查询将返回给定类型的元素。 类型可以是包含与从查询返回的列名匹配的属性的任何类型,也可以是简单的基元类型。 该类型不必是实体类型。 即使返回对象的类型是实体类型,上下文也决不会跟踪此查询的结果。 使用 SqlQuery(String, Object[]) 方法可返回上下文跟踪的实体。 与接受 SQL 的任何 API 一样,对任何用户输入进行参数化以便避免 SQL 注入攻击是十分重要的。 您可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为附加参数提供。 您提供的任何参数值都将自动转换为 DbParameter。 context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); 或者,您还可以构造一个 DbParameter 并将它提供给 SqlQuery。 这允许您在 SQL 查询字符串中使用命名参数。 context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

命名空间:  System.Data.Entity
程序集:  EntityFramework(在 EntityFramework.dll 中)

语法

声明
Public Function SqlQuery ( _
    elementType As Type, _
    sql As String, _
    ParamArray parameters As Object() _
) As DbRawSqlQuery
用法
Dim instance As Database 
Dim elementType As Type 
Dim sql As String 
Dim parameters As Object()
Dim returnValue As DbRawSqlQuery 

returnValue = instance.SqlQuery(elementType, _
    sql, parameters)
public DbRawSqlQuery SqlQuery(
    Type elementType,
    string sql,
    params Object[] parameters
)
public:
DbRawSqlQuery^ SqlQuery(
    Type^ elementType, 
    String^ sql, 
    ... array<Object^>^ parameters
)
member SqlQuery : 
        elementType:Type * 
        sql:string * 
        parameters:Object[] -> DbRawSqlQuery
public function SqlQuery(
    elementType : Type, 
    sql : String, 
    ... parameters : Object[]
) : DbRawSqlQuery

参数

  • elementType
    类型:System.Type
    查询所返回对象的类型。

返回值

类型:System.Data.Entity.Infrastructure.DbRawSqlQuery
一个 DbRawSqlQuery 对象,此对象在枚举时将执行查询。

请参阅

参考

Database 类

SqlQuery 重载

System.Data.Entity 命名空间