ObjectContext.ExecuteStoreQueryAsync<TElement> 方法 (String, String, ExecutionOptions, CancellationToken, Object[])

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

对数据源直接异步执行查询并返回类型化结果的序列。 使用服务器的本机查询语言(如 SQL)指定该查询。 如果指定了实体集名称,则上下文会跟踪结果。 与接受 SQL 的任何 API 一样,对任何用户输入进行参数化以便避免 SQL 注入攻击是十分重要的。 您可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为附加参数提供。 您提供的任何参数值都将自动转换为 DbParameter。 context.ExecuteStoreQueryAsync&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); 或者,您还可以构造一个 DbParameter 并将它提供给 SqlQuery。 这允许您在 SQL 查询字符串中使用命名参数。 context.ExecuteStoreQueryAsync&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

语法

声明
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
Public Overridable Function ExecuteStoreQueryAsync(Of TElement) ( _
    commandText As String, _
    entitySetName As String, _
    executionOptions As ExecutionOptions, _
    cancellationToken As CancellationToken, _
    ParamArray parameters As Object() _
) As Task(Of ObjectResult(Of TElement))
用法
Dim instance As ObjectContext 
Dim commandText As String 
Dim entitySetName As String 
Dim executionOptions As ExecutionOptions 
Dim cancellationToken As CancellationToken 
Dim parameters As Object()
Dim returnValue As Task(Of ObjectResult(Of TElement))

returnValue = instance.ExecuteStoreQueryAsync(commandText, _
    entitySetName, executionOptions, _
    cancellationToken, parameters)
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public virtual Task<ObjectResult<TElement>> ExecuteStoreQueryAsync<TElement>(
    string commandText,
    string entitySetName,
    ExecutionOptions executionOptions,
    CancellationToken cancellationToken,
    params Object[] parameters
)
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
public:
generic<typename TElement>
virtual Task<ObjectResult<TElement>^>^ ExecuteStoreQueryAsync(
    String^ commandText, 
    String^ entitySetName, 
    ExecutionOptions^ executionOptions, 
    CancellationToken cancellationToken, 
    ... array<Object^>^ parameters
)
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
abstract ExecuteStoreQueryAsync : 
        commandText:string * 
        entitySetName:string * 
        executionOptions:ExecutionOptions * 
        cancellationToken:CancellationToken * 
        parameters:Object[] -> Task<ObjectResult<'TElement>> 
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
override ExecuteStoreQueryAsync : 
        commandText:string * 
        entitySetName:string * 
        executionOptions:ExecutionOptions * 
        cancellationToken:CancellationToken * 
        parameters:Object[] -> Task<ObjectResult<'TElement>> 
JScript does not support generic types and methods.

类型参数

  • TElement
    结果序列的元素类型。

参数

  • commandText
    类型:System.String
    使用服务器的本机查询语言指定的查询。
  • entitySetName
    类型:System.String
    TResult 类型的实体集。 如果未提供实体集名称,则不会跟踪结果。

返回值

类型:System.Threading.Tasks.Task<ObjectResult<TElement>>
表示异步操作的任务。任务结果包含类型为 TElement 的对象的枚举。

备注

不支持对同一上下文实例执行多个活动操作。 使用“await”以确保在对此上下文调用另一个方法前完成了所有异步操作。

请参阅

参考

ObjectContext 类

ExecuteStoreQueryAsync 重载

System.Data.Entity.Core.Objects 命名空间