クエリデザイナでのフィルタの作成は、
こんな感じなので自ずと限界がある。
そこでLightSwitchではクエリをコーディングでカスタマイズできるようになっている。
前回のサンプルでカスタマイズしたクエリを追加してみる。
- 「ソリューションエクスプローラー」で「Customers」テーブルを右クリックして「クエリの追加」を選択する。
- 「プロパティ」ウインドウで「名前」に「OrderedCustomer」と入力し、「追加クエリコードの編集」リンクをクリックする。
- 表示された「OrderedCustomer_PreprocessQuery」メソッドを以下のようにカスタマイズする。
public partial class NorthwindDataService
{
partial void OrderedCustomer_PreprocessQuery(ref IQueryable<CustomersItem> query)
{
query = query.Where(c => c.Orders.Count() > 0);
}
}
ここで、「query」引数はデザイナで定義されたクエリで、これに対してLINQなどで条件を追加していけば良さそうだ。
ここでは、過去にOrderしたことのある顧客だけを抽出している。
これで実行すると絞り込まれた「CusutomerName」がオートコンプリートボックスに表示される。
0 件のコメント:
コメントを投稿