RIA服务通过Silverlight Where&排序依据

时间:2013-05-09 20:37:19

标签: c# .net silverlight wcf-ria-services

当我通过RIA服务查询数据库时,例如......

OrderWorkflowSLWCFRIA.Web.OrderWorkflowDomainContext db
   = new OrderWorkflowSLWCFRIA.Web.OrderWorkflowDomainContext();

db.Load(db.getWorkflowbyNameQuery(strCurrentLineText, intCustomerId)
     .Where(Workflow => Workflow.UserSelectable == true), load => { }, null);

...将参数传递给基础域服务并在域服务端执行where和orderby子查询与在客户端指定它们之间是否有任何区别。我一直以为我应该在域服务方面执行它,假设在客户端执行子查询会在执行子查询之前加载客户端的所有数据,但我读过的东西让我相信子查询实际上是传递给域服务的。这是真的吗?

1 个答案:

答案 0 :(得分:1)

我认为使用术语“子查询”,您打算使用Where和OrderBy子句。 嗯,是的,你通常是正确的,过滤客户端一般强制服务器返回所有东西然后将被过滤/订购客户端,但WCF Ria服务的主要目标之一确实是可以在客户端定义过滤,排序甚至分组,然后在服务器端执行它们。

基本上客户端和服务器之间的代码是通过线路“序列化”LINQ表达式,然后在服务器端“反序列化”它。

请注意,在此上下文中,术语“序列化”和“反序列化”不正确,但我认为它们是重点。 此外,请记住,此过程中没有实现的内容,因此您无法使用嵌套条件查询域服务,例如,Any()