RIA服务错误

时间:2011-01-07 14:40:35

标签: silverlight-3.0 service ria domaindatasource

我有一个带有过滤器描述符的domaindatasource。这是用于搜索数据的文本框。它只过滤掉以文本开头的名称。每当在搜索框中输入文本时,我都会收到错误消息。部分错误消息说明了这一点:

  

'仅支持“跳过”方法   对于LINQ to Entities中的排序输入。   必须调用'OrderBy'方法   在方法'Skip''之前

我无法向下钻取并找到过滤器仅使用原始查询所使用的linq语句。 谁能告诉我这个linq声明在哪里或者我怎么能找到它?

更新

这是完整的错误消息:

  

网页错误详情用户代理:   Mozilla / 4.0(兼容; MSIE 8.0;   Windows NT 5.2;三叉戟/ 4.0; .NET CLR   1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2; 。净   CLR 3.0.4506.2152; .NET CLR 3.5.30729;   .NET4.0C; .NET4.0E)时间戳:星期四,6   2011年1月20:45:30 UTC消息:   Silverlight中未处理的错误   申请代码:4004类别:   ManagedRuntimeError消息:   System.Windows.Ria.DomainException:An   加载数据时发生错误   通过'GetEmployeesView'查询   在类型的DomainContext上   'AllocationContext'和错误是   没处理。如果出现此错误   预计,那你必须处理   关于LoadedData事件   DomainDataSource和调用   LoadedDataEventArgs.MarkErrorAsHandled()   避免这种例外。加载   查询操作失败   'GetEmployeesView'。方法'Skip'   仅支持排序输入   LINQ to Entities。方法'OrderBy'   必须在方法之前调用   '跳跃'。 --->   System.Windows.Ria.DomainOperationException:   查询加载操作失败   'GetEmployeesView'。方法'Skip'   仅支持排序输入   LINQ to Entities。方法'OrderBy'   必须在方法之前调用   '跳跃'。 ---内部异常结束   堆栈跟踪--- at   System.Windows.Ria.OperationBase.InvokeCompleteAction()   在   System.Windows.Ria.OperationBase.Complete(例外   错误)   System.Windows.Ria.LoadOperation.Complete(例外   错误)   System.Windows.Ria.DomainContext.CompleteLoad(IAsyncResult的   asyncResult)at   System.Windows.Ria.DomainContext<> C_ DisplayClass17.b _13(对象   )行:56个字符:13个代码:0

'GetEmployeesView'是RIA domian服务查询,它从'EmployeesView'实体(从SQL视图构建)返回Employees列表。

1 个答案:

答案 0 :(得分:0)

您的RIA方法必须返回实现IQueryable的集合。 DomainDataSource使用LINQ Take(),Skip()等在后台形成其加载,排序和过滤查询。如果你感兴趣的话,“看到”这些查询的最简单方法就是启动Fiddler并查看请求,因为它正在通过网络传输。