我正在尝试绑定一个带有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();
非常感谢任何关于此的想法或指导。
谢谢你, 马特
答案 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>
集合。