Partager via


Opérations de traitement par lot (WCF Data Services)

Le protocole Protocole OData (Open Data) prend en charge le traitement par lots des demandes faites à un service OData. Pour plus d'informations, consultez OData : traitement par lots. Dans Services de données WCF, chaque opération qui utilise DataServiceContext, telle que l'exécution d'une requête ou l'enregistrement de modifications, entraîne l'envoi d'une demande séparée au service de données. Pour maintenir une étendue logique pour les jeux d'opérations, vous pouvez définir explicitement des lots opérationnels. Cela garantit que toutes les opérations dans le lot sont envoyées au service de données dans une requête HTTP unique, et cela permet au serveur de traiter les opérations de manière atomique et de réduire le nombre de boucles vers le service de données.

Opérations de traitement par lot des requêtes

Pour exécuter plusieurs requêtes dans un lot unique, vous devez créer chaque requête dans le lot comme une instance distincte de la classe DataServiceRequest<TElement>. Lorsque vous créez une requête d'interrogation de cette manière, la requête elle-même est définie comme un URI, et elle suit les règles pour l'adressage de ressources. Pour plus d'informations, consultez Accès à un service OData (WCF Data Services). Les requêtes d'interrogation par lot sont envoyées au service de données lorsque la méthode ExecuteBatch est appelée qui contient les objets de requête d'interrogation. Cette méthode retourne un objet DataServiceResponse qui est une collection d'objets QueryOperationResponse<T> qui représentent des réponses aux requêtes individuelles dans le lot, chacune contenant une collection d'objets retournés par la requête ou des informations d'erreur. Lorsqu'une opération de requête unique dans le lot échoue, les informations d'erreur sont retournées dans l'objet QueryOperationResponse<T> pour l'opération qui a échoué et les opérations restantes sont exécutées. Pour plus d'informations, consultez Procédure : exécuter des requêtes dans un lot (WCF Data Services).

Les requêtes par lot peuvent également être exécutées de façon asynchrone. Pour plus d'informations, consultez Opérations asynchrones (WCF Data Services).

Traitement par lot de l'opération SaveChanges

Lorsque vous appelez la méthode SaveChanges, toutes les modifications suivies par le contexte sont traduites en opérations REST envoyées au service OData sous forme de requêtes HTTP. Par défaut, ces modifications ne sont pas envoyées dans un message de demande unique. Pour que toutes les modifications soient envoyées dans une demande unique, vous devez appeler la méthode SaveChanges(SaveChangesOptions) et inclure une valeur Batch dans l'énumération SaveChangesOptions que vous fournissez à la méthode.

Vous pouvez également enregistrer de façon asynchrone les modifications par lot. Pour plus d'informations, consultez Opérations asynchrones (WCF Data Services).

Voir aussi

Autres ressources

Client de données (WCF Data Services)