I’m happy to announce that with our upcoming service pack (Q3 2010 SP1) you will be able to sort, filter and load records on demand with WCF RIA Services and our VirtualQueryableCollectionView.
To enable this we’ve added two extension methods for EntityQuery<T> and now you can use directly VirtualQueryableCollectionView SortDescriptors and FilterDescriptors:
var context = new NorthwindDomainContext(); var query = context.GetOrder_DetailsQuery().OrderBy(o => o.OrderID); var view = new VirtualQueryableCollectionView() { LoadSize = 10, VirtualItemCount = 100 }; view.ItemsLoading += (s, e) => { var queryToLoad = query
.IncludeTotalCount(true)
.Sort(view.SortDescriptors)
.Where(view.FilterDescriptors)
.Skip(e.StartIndex)
.Take(e.ItemCount); context.Load<Order_Detail>(queryToLoad).Completed += (sender, args) => { var lo = (LoadOperation)sender; if (lo.TotalEntityCount != -1 && lo.TotalEntityCount != view.VirtualItemCount) { view.VirtualItemCount = lo.TotalEntityCount; } view.Load(e.StartIndex, lo.Entities); }; };
Enjoy!
Vladimir Enchev is Director of Engineering, Native Mobile UI & Frameworks