Freigeben über


ObjectContext.ExecuteStoreQueryAsync<TElement>-Methode (String, ExecutionOptions, Object[])

[Diese Seite bezieht sich auf Entity Framework Version 6. Die neueste Version ist als 'Entity Framework' NuGet-Paket verfügbar. Weitere Informationen zu Entity Framework finden Sie unter msdn.com/data/ef.]

Führt eine Abfrage, die eine Sequenz typisierter Ergebnisse zurückgibt, direkt für die Datenquelle asynchron aus. Die Abfrage wird mithilfe der systemeigenen Abfragesprache des Servers, wie SQL, angegeben. Ergebnisse werden nicht nach Kontext nachverfolgt; verwenden Sie eine Überladung, die einen Entitätenmengennamen angibt, um die Ergebnisse zu verfolgen. Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren. Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben. Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. context.ExecuteStoreQueryAsync&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben. Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. context.ExecuteStoreQueryAsync&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Namespace:  System.Data.Entity.Core.Objects
Assembly:  EntityFramework (in EntityFramework.dll)

Syntax

'Declaration
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
Public Overridable Function ExecuteStoreQueryAsync(Of TElement) ( _
    commandText As String, _
    executionOptions As ExecutionOptions, _
    ParamArray parameters As Object() _
) As Task(Of ObjectResult(Of TElement))
'Usage
Dim instance As ObjectContext 
Dim commandText As String 
Dim executionOptions As ExecutionOptions 
Dim parameters As Object()
Dim returnValue As Task(Of ObjectResult(Of TElement))

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

Typparameter

  • TElement
    Der Elementtyp der Ergebnissequenz.

Parameter

  • commandText
    Typ: System.String
    Die in der systemeigenen Abfragesprache des Servers angegebene Abfrage.
  • parameters
    Typ: System.Object[]
    Die für die Abfrage zu verwendenden Parameterwerte. Werden Ausgabeparameter verwendet, sind deren Werte erst nach vollständigem Lesen der Ergebnisse verfügbar. Dies liegt an dem zugrundeliegenden Verhalten von DbDataReader; weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkID=398589.

Rückgabewert

Typ: System.Threading.Tasks.Task<ObjectResult<TElement>>
Eine Aufgabe, die den asynchronen Vorgang darstellt.Das Aufgabenergebnis enthält eine Aufzählung von Objekten des Typs TElement.

Hinweise

Mehrere aktive Vorgänge für dieselbe Kontextinstanz werden nicht unterstützt. Verwenden Sie await, um sicherzustellen, dass sämtliche asynchronen Vorgänge abgeschlossen sind, bevor eine andere Methode in diesem Kontext aufgerufen wird.

Siehe auch

Verweis

ObjectContext Klasse

ExecuteStoreQueryAsync-Überladung

System.Data.Entity.Core.Objects-Namespace