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

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

查询操作批处理

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

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

SaveChanges 操作批处理

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

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

请参阅

其他资源

数据客户端 (WCF Data Services)