0

我正在尝试绑定其中包含 Distinct() 的 LINQ 查询并将其绑定到 Telerik 网格(这仍然是 Telerik 网格,尚未转换为 Kendo)。我也尝试将 AsQueryable() 添加到其中,但仍然出现“Specified method is not supported异常”。

我的查询如下所示:

var rewardTypes = (from type in _rewardTypeRepository.GetAll()
                           from vo in type.ValidOutlets
                           join ot in _outletRepository.GetAll()
                               on vo.Outlet.Id equals ot.Id
                           where userOutletIds.Contains(ot.Id)
                           select vo.RewardType).Distinct().AsQueryable();

对此的任何想法或指导将不胜感激。

谢谢你,马特

4

1 回答 1

0

使用.Distinct()IQueryable<T>只是延迟加载数据集合,这意味着它实际上还没有被枚举。

尝试将其转换为List<T>.

var rewardTypes = (from type in _rewardTypeRepository.GetAll()
                   from vo in type.ValidOutlets
                   join ot in _outletRepository.GetAll()
                       on vo.Outlet.Id equals ot.Id
                   where userOutletIds.Contains(ot.Id)
                   select vo.RewardType).ToList();

如果您想保持“轻量级”并且不枚举潜在大型集合中的每个项目,我建议您在方便时使用.Skip()and.Take()方法对结果进行分页。这两种方法都适用于IQueryable<T>集合。

于 2012-07-11T20:23:23.460 回答