Freigeben über


Batchverarbeitungsvorgänge (WCF Data Services)

Open Data Protocol (OData) unterstützt die Batchverarbeitung von Anforderungen an einen OData-basierten Dienst. Weitere Informationen finden Sie unter OData: Batchverarbeitung. In WCF Data Services führt jeder Vorgang, der den DataServiceContext verwendet, wie das Ausführen einer Abfrage oder das Speichern von Änderungen, zu einer separaten Anforderung, die an den Datendienst gesendet wird. Sie können Vorgangsbatches explizit definieren, um einen logischen Bereich für mehrere Vorgänge beizubehalten. Dadurch wird sichergestellt, dass alle Vorgänge im Batch an den Datendienst in einer einzelnen HTTP-Anforderung gesendet werden, der Server wird aktiviert, um den Vorgang atomar zu verarbeiten, und die Anzahl von Roundtrips zum Datendienst wird reduziert.

Batchverarbeitungsabfragevorgänge

Sie müssen jede Abfrage im Batch als separate Instanz der DataServiceRequest<TElement>-Klasse erstellen, um mehrere Abfragen in einem Batch auszuführen. Wenn Sie auf diese Weise eine Abfrageanforderung erstellen, wird die Abfrage selbst als URI definiert und folgt den Regeln zum Adressieren von Ressourcen. Weitere Informationen finden Sie unter Zugreifen auf einen OData-Dienst (WCF Data Services). Die zusammengefassten Abfrageanforderungen werden an den Datendienst gesendet, wenn die ExecuteBatch-Methode aufgerufen wird, die die Abfrageanforderungsobjekte enthält. Diese Methode gibt ein DataServiceResponse-Objekt zurück, das eine Auflistung von QueryOperationResponse<T>-Objekten ist, die Antworten auf einzelne Abfragen im Batch darstellen, von denen jede entweder eine Auflistung von der Abfrage zurückgegebenen Objekten oder Fehlerinformationen enthält. Wenn ein einzelner Abfragevorgang im Batch fehlschlägt, werden Fehlerinformationen im QueryOperationResponse<T>-Objekt für die fehlgeschlagene Operation zurückgegeben, und die übrigen Vorgänge werden noch ausgeführt. Weitere Informationen finden Sie unter Gewusst wie: Ausführen von Abfragen in einem Batch (WCF Data Services).

Zusammengefasste Abfragen können auch asynchron ausgeführt werden. Weitere Informationen finden Sie unter Asynchrone Vorgänge (WCF Data Services).

Batchverarbeitung des SaveChanges-Vorgangs

Wenn Sie die SaveChanges-Methode aufrufen, werden alle Änderungen, die die Kontextspuren in REST-basierte Vorgänge übersetzt haben, als Anforderungen an den OData-Dienst gesendet. Standardmäßig werden diese Änderungen nicht in einer einzelnen Anforderungsnachricht gesendet. Um festzulegen, dass alle Änderungen in einer einzelnen Anforderung gesendet werden, müssen Sie die SaveChanges(SaveChangesOptions)-Methode aufrufen und den Wert Batch in die SaveChangesOptions-Enumeration einschließen, die Sie für die Methode angeben.

Sie können zusammengefasste Änderungen auch asynchron speichern. Weitere Informationen finden Sie unter Asynchrone Vorgänge (WCF Data Services).

Siehe auch

Andere Ressourcen

Datenclient (WCF Data Services)