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().Take()メソッドを使用して、都合のよいときに結果をページ分割することをお勧めします。これらのメソッドはどちらもIQueryable<T>コレクションに対して機能します。

于 2012-07-11T20:23:23.460 に答える