我发现通常情况下,我想要在RIA服务中加载所有相关的多个查询/实体,以及在加载完成后处理数据的单个回调。但是,我没有看到一个干净,简单的方法来使用RIA服务执行此操作而不添加我自己的样板代码来计算回调(如果我有三个加载,那么在回调中有一个类变量递增并返回,如果仍然< 3),或者通过链接负载,这会浪费时间,因为负载调用可能是并发的。
我开始认为我最好的选择是创建一个名为“LoadGroup”的独立的,可重用的小类,它接受多个加载查询和回调函数,并且只在所有加载完成后才调用回调。我的问题是:我在这里重新发明轮子了吗? RIA服务的功能是否基本上已经完成(或者设计模式比我建议的更好)?或者我应该继续编写自己的小班级计划吗?
谢谢,
-Robert
答案 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 )