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<Post>("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<Post>("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.
- executionOptions
Typ: System.Data.Entity.Core.Objects.ExecutionOptions
Die Optionen für die Ausführung dieser 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.