几天前我问了一个关于如何使用基于索引的解决方案将记录添加到网页的问题。
我需要能够使用两个参数更改订单列表的排序:strSortBy和strSortDirection。
我正在尝试使用IQueryable查询:
query = temporders.AsQueryable.OrderBy(strSortBy + " " + strSortDirection)
但是我收到了一个错误:
Unable to cast object of type 'System.Linq.EnumerableQuery`1[Order]' to type 'System.Collections.Generic.List`1[Order]'.
行:
orderList.Items = query
这是我的上一个(下一个)按钮的代码:
Dim temporders As System.Collections.Generic.List(Of Order) = orderList.Items
If Not temporders Is Nothing And Not String.IsNullOrEmpty(strSortBy) Then
Dim query As IQueryable = Nothing
query = temporders.AsQueryable.OrderBy(strSortBy + " " + strSortDirection)
orderList.Items = query
End If
在作业中我做错了什么?任何指导表示赞赏。
谢谢。
更新
我更改了我的代码,因此我将OrderBy应用于oderList.Items而不是tempOrders
orderList.Items.AsQueryable.OrderBy(strSortBy + " " + strSortDirection)
更新
我能够以这种方式工作:
orderList.Items = orderList.Items.AsQueryable.OrderBy(strSortBy + " " + strSortDirection).ToList
答案 0 :(得分:2)
调用ToList
将查询具体化为列表:
orderList.Items = query.ToList()
但是当你不清楚为什么时,你似乎在施法,打电话,AsQueryable
等。
如果orderList.Items
是List (Of Order)
,那你为什么要施展它?如果不是那么你可能根本不需要做任何演员。