2011年9月24日土曜日

◆クエリをカスタマイズする

クエリデザイナでのフィルタの作成は、
2011-09-24 20h12_27
こんな感じなので自ずと限界がある。

そこでLightSwitchではクエリをコーディングでカスタマイズできるようになっている。
前回のサンプルでカスタマイズしたクエリを追加してみる。

  1. 「ソリューションエクスプローラー」で「Customers」テーブルを右クリックして「クエリの追加」を選択する。
    image
  2. 「プロパティ」ウインドウで「名前」に「OrderedCustomer」と入力し、「追加クエリコードの編集」リンクをクリックする。
    image
  3. 表示された「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」がオートコンプリートボックスに表示される。
2011-09-24 20h27_12


0 件のコメント:

コメントを投稿