通过


ObjectContext.ExecuteStoreQuery 方法

定义

重载

名称 说明
ExecuteStoreQuery<TElement>(String, Object[])

直接对返回类型化结果序列的数据源执行查询。

ExecuteStoreQuery<TEntity>(String, String, MergeOption, Object[])

直接对数据源执行查询,并返回类型化结果序列。 指定实体集和合并选项,以便可以跟踪查询结果作为实体。

ExecuteStoreQuery<TElement>(String, Object[])

直接对返回类型化结果序列的数据源执行查询。

public:
generic <typename TElement>
 System::Data::Objects::ObjectResult<TElement> ^ ExecuteStoreQuery(System::String ^ commandText, ... cli::array <System::Object ^> ^ parameters);
public System.Data.Objects.ObjectResult<TElement> ExecuteStoreQuery<TElement>(string commandText, params object[] parameters);
member this.ExecuteStoreQuery : string * obj[] -> System.Data.Objects.ObjectResult<'Element>
Public Function ExecuteStoreQuery(Of TElement) (commandText As String, ParamArray parameters As Object()) As ObjectResult(Of TElement)

类型参数

TElement

返回的数据的类型。

参数

commandText
String

要执行的命令,采用数据源的本机语言。

parameters
Object[]

要传递给命令的参数数组。

返回

ObjectResult<TElement>

类型的 TElement对象的枚举。

注解

该方法 ExecuteStoreQuery 使用现有连接直接对数据源执行任意命令。 如果存在此类事务,则会在当前事务的上下文中执行 store 命令。

ExecuteStoreQuery调用该方法等效于调用ExecuteReader类的方法DbCommand,只ExecuteStoreQuery返回实体和ExecuteReader返回属性值。DbDataReader

ExecuteStoreQuery如果要跟踪结果,请使用指定的实体集名称调用。

Translate当读取器包含映射到指定实体类型的数据行时,调用该方法以转换为DbDataReader实体对象。

使用参数化命令可帮助抵御 SQL 注入攻击,这种攻击的攻击者会将命令“注入”SQL 语句,从而危及服务器的安全。 参数化命令通过保证从外部源接收的值仅作为值传递,而不是 SQL 语句的一部分来防范 SQL 注入攻击。 因此,插入到值的 SQL 命令不会在数据源中执行。 相反,它们只计算为参数值。 除了安全优势之外,参数化命令还提供一种方便的方法,用于组织使用 SQL 语句或存储过程传递的值。

该值 parameters 可以是对象数组 DbParameter ,也可以是参数值的数组。 如果仅提供值,则根据数组中的值顺序创建对象数组 DbParameter

适用于

ExecuteStoreQuery<TEntity>(String, String, MergeOption, Object[])

直接对数据源执行查询,并返回类型化结果序列。 指定实体集和合并选项,以便可以跟踪查询结果作为实体。

public:
generic <typename TEntity>
 System::Data::Objects::ObjectResult<TEntity> ^ ExecuteStoreQuery(System::String ^ commandText, System::String ^ entitySetName, System::Data::Objects::MergeOption mergeOption, ... cli::array <System::Object ^> ^ parameters);
public System.Data.Objects.ObjectResult<TEntity> ExecuteStoreQuery<TEntity>(string commandText, string entitySetName, System.Data.Objects.MergeOption mergeOption, params object[] parameters);
member this.ExecuteStoreQuery : string * string * System.Data.Objects.MergeOption * obj[] -> System.Data.Objects.ObjectResult<'Entity>
Public Function ExecuteStoreQuery(Of TEntity) (commandText As String, entitySetName As String, mergeOption As MergeOption, ParamArray parameters As Object()) As ObjectResult(Of TEntity)

类型参数

TEntity

返回数据的实体类型。

参数

commandText
String

要执行的命令,采用数据源的本机语言。

entitySetName
String

类型的实体集 TEntity 。 如果未提供实体集名称,则不会跟踪结果。

mergeOption
MergeOption

执行 MergeOption 查询时要使用的查询。 默认值为 AppendOnly

parameters
Object[]

要传递给命令的参数数组。

返回

ObjectResult<TEntity>

类型的 TResult对象的枚举。

注解

该方法 ExecuteStoreQuery 使用现有连接直接对数据源执行任意命令。 如果存在此类事务,则会在当前事务的上下文中执行 store 命令。

ExecuteStoreQuery调用该方法等效于调用ExecuteReader类的方法DbCommand,只ExecuteStoreQuery返回实体和ExecuteReader返回属性值。DbDataReader

如果要将结果跟踪为实体,请指定实体集名称。

当读取器包含映射到指定实体类型的数据行时,调用 Translate 方法将转换为 DbDataReader 实体对象。

使用参数化命令可帮助抵御 SQL 注入攻击,这种攻击的攻击者会将命令“注入”SQL 语句,从而危及服务器的安全。 参数化命令通过保证从外部源接收的值仅作为值传递,而不是 SQL 语句的一部分来防范 SQL 注入攻击。 因此,插入到值的 SQL 命令不会在数据源中执行。 相反,它们只计算为参数值。 除了安全优势之外,参数化命令还提供一种方便的方法,用于组织使用 SQL 语句或存储过程传递的值。

该值 parameters 可以是对象数组 DbParameter ,也可以是参数值的数组。 如果仅提供值,则根据数组中的值顺序创建对象数组 DbParameter

适用于