批处理操作(WCF 数据服务)

开放式数据协议 (OData) 支持对针对基于 OData 的服务的请求进行批处理。有关更多信息,请参见 OData:批处理(可能为英文网页)。 在 WCF 数据服务 中,每个使用 DataServiceContext 的操作(如执行查询或保存更改)都会导致向数据服务发送一个单独的请求。为保持操作集的合理范围,可以显式定义操作批。这样可确保通过一个 HTTP 请求将该批中的所有操作发送到数据服务,使服务器能够以原子方式处理这些操作,并减少与数据服务之间的往返次数。

查询操作批处理

若要在一个批中执行多个查询,必须在该批中将每个查询创建为 DataServiceRequest 类的一个单独实例。以这种方式创建查询请求时,查询本身将定义为 URI,并遵循资源寻址规则。有关更多信息,请参见访问数据服务资源(WCF 数据服务)。在调用包含查询请求对象的 ExecuteBatch 方法时,会将批处理查询请求发送到数据服务。此方法返回一个 DataServiceResponse 对象,它是代表对批中各个查询的响应的 QueryOperationResponse 对象的集合,其中每个对象包含查询返回的对象集合或错误信息。当批中任何一个查询操作失败时,将针对失败的操作在 QueryOperationResponse 对象中返回错误信息,并继续执行其余操作。有关更多信息,请参见如何:在批处理中执行查询(WCF 数据服务)

批处理查询也可以采用异步方式执行。有关更多信息,请参见异步操作(WCF 数据服务)

SaveChanges 操作批处理

调用 SaveChanges 方法时,会将上下文跟踪的所有更改转换为基于 REST 的操作,这些操作将作为请求发送到 OData 服务。默认情况下,不会在同一请求消息中发送这些更改。若要求在一个请求中发送所有更改,必须调用 SaveChanges 方法,并在为此方法提供的 SaveChangesOptions 枚举中包括 Batch 值。

此外,还可以采用异步方式保存批处理更改。有关更多信息,请参见异步操作(WCF 数据服务)

另请参见

其他资源

WCF 数据服务客户端库