将不同的LINQ查询绑定到Telerik网格

时间:2012-07-11 20:22:28

标签: asp.net-mvc-3 linq telerik-grid

我正在尝试绑定一个带有Distinct()的LINQ查询并将其绑定到Telerik Grid(这仍然是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();

非常感谢任何关于此的想法或指导。

谢谢你, 马特

1 个答案:

答案 0 :(得分: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().Take()方法在方便时对结果进行分页。这两种方法都适用于IQueryable<T>集合。