我有一个带有过滤器描述符的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列表。
答案 0 :(得分:0)
您的RIA方法必须返回实现IQueryable的集合。 DomainDataSource使用LINQ Take(),Skip()等在后台形成其加载,排序和过滤查询。如果你感兴趣的话,“看到”这些查询的最简单方法就是启动Fiddler并查看请求,因为它正在通过网络传输。