.Net RIA服务:多次加载到一个回调

时间:2011-04-18 18:54:10

标签: .net wcf-ria-services

我发现通常情况下,我想要在RIA服务中加载所有相关的多个查询/实体,以及在加载完成后处理数据的单个回调。但是,我没有看到一个干净,简单的方法来使用RIA服务执行此操作而不添加我自己的样板代码来计算回调(如果我有三个加载,那么在回调中有一个类变量递增并返回,如果仍然< 3),或者通过链接负载,这会浪费时间,因为负载调用可能是并发的。

我开始认为我最好的选择是创建一个名为“LoadGroup”的独立的,可重用的小类,它接受多个加载查询和回调函数,并且只在所有加载完成后才调用回调。我的问题是:我在这里重新发明轮子了吗? RIA服务的功能是否基本上已经完成(或者设计模式比我建议的更好)?或者我应该继续编写自己的小班级计划吗?

谢谢,

-Robert

1 个答案:

答案 0 :(得分:1)

没有链接机制,因此您设置主处理程序的选项是正常路由。另一种解决方法是简单地通过Invoke公开一个Model,它将所有调用封装成一个结果,以便三次调用:

IQueryable<SomeType1> GetSomeType1()
{
}

IQueryable<SomeType2> GetSomeType2()
{
}

IQueryable<SomeType2> GetSomeType2()
{
}

可以作为(模拟类)返回

public class SomeModel()
{
   public List<SomeType1> FirstCall()
   public List<SomeType2> SecondCall()
   public List<SomeType3> ThirdCall()
}

作为调用公开:

[Invoke]
    public SomeModel GetMultiple( IQueryable<SomeType1> first, IQueryable<SomeType2> second, IQueryable<SomeType3> third )