ObjectContext.ExecuteStoreQuery 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| 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[]
要传递给命令的参数数组。
返回
类型的 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[]
要传递给命令的参数数组。
返回
类型的 TResult对象的枚举。
注解
该方法 ExecuteStoreQuery 使用现有连接直接对数据源执行任意命令。 如果存在此类事务,则会在当前事务的上下文中执行 store 命令。
ExecuteStoreQuery调用该方法等效于调用ExecuteReader类的方法DbCommand,只ExecuteStoreQuery返回实体和ExecuteReader返回属性值。DbDataReader
如果要将结果跟踪为实体,请指定实体集名称。
当读取器包含映射到指定实体类型的数据行时,调用 Translate 方法将转换为 DbDataReader 实体对象。
使用参数化命令可帮助抵御 SQL 注入攻击,这种攻击的攻击者会将命令“注入”SQL 语句,从而危及服务器的安全。 参数化命令通过保证从外部源接收的值仅作为值传递,而不是 SQL 语句的一部分来防范 SQL 注入攻击。 因此,插入到值的 SQL 命令不会在数据源中执行。 相反,它们只计算为参数值。 除了安全优势之外,参数化命令还提供一种方便的方法,用于组织使用 SQL 语句或存储过程传递的值。
该值 parameters 可以是对象数组 DbParameter ,也可以是参数值的数组。 如果仅提供值,则根据数组中的值顺序创建对象数组 DbParameter 。