如何使ObjectResult可过滤

时间:2011-10-06 04:05:41

标签: wpf c#-4.0 entity-framework-4

看起来它应该很简单,但我显然太密集了,无法弄明白。我使用简单的ObjectQuery得到了一个ObjectResult;它只是数据表中的几条记录。我将它分配给CollectionViewSource Source属性。然后,我查看CollectionView的View属性,看到CanFilterCanSor t都是false。当我将DefaultView作为BindingListCollectionView时,它显示CanCustomFilter为false。由于这些是只读的,我无法更改值。现在我想对检索到的数据设置一个过滤器(或排序),而不是回到SQL Server,但是对于我的生活,我找不到一种方法来获取这些属性设置为true的数据。

我尝试使用ObjectResult.AsQueryable<T>(),结果是CanFilterCanSort为真,但这会将视图类型从System.Windows.Data.BindingListCollectionView更改为MS.Internal.Data.EnumerableCollectionView而我不能找到一种方法将EnumerableCollectionView投回到BindingListCollectionView

任何指针都会非常感激。

1 个答案:

答案 0 :(得分:0)

我认为这种偏差的主要原因是BindingListCollectionView无法过滤或排序任何IQueryable个对象(不知道为什么),尽管在设置{{1}时执行了查询}}。最简单的方法是使用Source property方法执行查询,但形成的ToList<T>()可以按List<T>进行排序和过滤