SilverLight WCF数据服务一个接一个的查询

SilverLight WCF数据服务一个接一个的查询,silverlight,wcf,Silverlight,Wcf,我有一个foreach循环,它发送WCF请求,如下所示: foreach (var rec in LstPRSCRPTActivated) { var OrderItemQueryActivated = GV.dbContext.Load(GV.dbContext.GetOrdritemsQuery((int)rec.PresNo)); OrderItemQueryAc

我有一个foreach循环,它发送WCF请求,如下所示:

foreach (var rec in LstPRSCRPTActivated)
{                                   
    var OrderItemQueryActivated = GV.dbContext.Load(GV.dbContext.GetOrdritemsQuery((int)rec.PresNo));                     
    OrderItemQueryActivated.Completed += new EventHandler(OrderItemQueryActivated_Completed);
}
在WCF数据服务中,我有以下代码:

public IQueryable<OrderItem> GetOrdritems(int PresNo)
{
    return this.ObjectContext.OrderItems.Where(o => o.ScriptNo == PresNo);           
}
public IQueryable GetOrdritems(int-PresNo)
{
返回此.ObjectContext.OrderItems.Where(o=>o.ScriptNo==PresNo);
}

如果第二个查询比第一个查询花费的时间少,则在回调事件
OrderItemQueryActivated\u Completed
中,我从第二个查询中获取结果,然后从第一个查询中获取结果。但我不想这样。我想先获取第一个查询的结果,然后再获取第二个查询的结果。有没有办法在服务中使用某种等待来实现这一点?

是否可以创建一个复合服务调用,在一个调用中执行所有操作?如果没有,您可以并行调用所有操作并等待它们完成以获得结果。

这就像发送一个值列表(PresNo)并在单个回调中获得结果一样吗?是的,就是这样。这样,您就不会得到等待那么多呼叫完成的所有开销。当然,只有在您拥有服务层(或创建额外的服务外观层)的情况下,才能这样做。