1

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

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

我无法深入研究它并仅找到过滤器使用的 linq 语句原始查询。谁能告诉我这个 linq 语句在哪里或者我怎么能找到它?

更新

这是完整的错误消息:

网页错误详细信息用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.2;Trident/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;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729;.NET4.0C;.NET4.0E) 时间戳:2011 年 1 月 6 日星期四 20:45:30 UTC 消息:Silverlight 应用程序代码中未处理的错误:4004 类别:ManagedRuntimeError 消息:System.Windows.Ria.DomainException:通过“AllocationContext”类型的 DomainContext 上的“GetEmployeesView”查询加载数据时发生错误,并且未处理该错误。如果出现此错误,则必须处理 DomainDataSource 上的 LoadedData 事件并调用 LoadedDataEventArgs.MarkErrorAsHandled() 以避免此异常。查询“GetEmployeesView”的加载操作失败。仅 LINQ to Entities 中的排序输入支持“跳过”方法。必须在方法“Skip”之前调用方法“OrderBy”。---> System.Windows.Ria.DomainOperationException:查询“GetEmployeesView”的加载操作失败。仅 LINQ to Entities 中的排序输入支持“跳过”方法。必须在方法“Skip”之前调用方法“OrderBy”。--- 内部异常堆栈跟踪结束 --- System.Windows.Ria.OperationBase.InvokeCompleteAction() 在 System.Windows.Ria.OperationBase.Complete(Exception error) 在 System.Windows.Ria.LoadOperation.Complete(Exception错误)在 System.Windows.Ria.DomainContext。DisplayClass17.b _13(对象)行:56 字符:13 代码:0

“GetEmployeesView”是 RIA 域服务查询,它从“EmployeesView”实体(从 SQL 视图构建)返回员工列表。

4

1 回答 1

0

您的 RIA 方法必须返回一个实现 IQueryable 的集合。DomainDataSource 使用 LINQ Take()、Skip() 等在后台形成其加载、排序和过滤查询。如果您有兴趣,“查看”这些查询的最简单方法是启动 Fiddler 并查看通过线路的请求。

于 2012-06-18T20:28:31.483 回答