1

LinqDataSource がデータを取得するために使用した IQueryable オブジェクトを取得する方法はありますか? 選択したイベントから可能かと思いましたが、そうではないようです。

テーブルの各行にはカテゴリ フィールドがあり、結果のカテゴリごとの行数を確認したいと考えています。

また、DataPager を使用しているため、すべての行が返されるわけではないことにも注意してください。そのため、次のようなことができるように、IQueryable を取得したいのです。

int count = query.Where(i => i.Category == "Category1").Count();
4

2 に答える 2

0

IQueryable には "Selected" イベントはありません。さらに、サーバー上でデータをフィルタリングしている場合、API が公開したとしてもアクセスする方法はありませんが、質問の一部に答えるために、カテゴリ -> 製品があり、それぞれがカテゴリには多くの製品があり、各カテゴリの製品の数が必要です。これは単純な LINQ クエリになります。

var query = GetListOfCategories();
var categoryCount = query.Select(c => c.Products).Count();

繰り返しになりますが、GetListOfCategories が返すオブジェクトのタイプに応じて、すべてのエントリ、または読み込まれてメモリ内にあるエントリのみに対して正しい値が得られる可能性がありますが、それは Linq-to-Objects (メモリ内) との違いです。 Linq-to-other データ ソース (遅延ロード)。

于 2012-05-30T23:32:15.767 に答える