DataSource for Entity Framework for WinForms
単純なクエリーより洗練されたクライアントビュー
プログラミングガイド > コードでの ClientView の使用 > 単純なクエリーより洗練されたクライアントビュー

ClientView オブジェクトは、サーバー上で実行できるクエリーを表しています。その点では、Entity Framework や RIA サービスのクエリーと同じ機能を提供します。新しく作成したコンテキストで初めて ClientView を作成する場合、手に入るのは、サーバー上で実行される EF(または RIA)クエリーとまったく同じです。結果のエンティティはクライアントにフェッチされ、クライアント上でデータ連結やプログラムからのアクセスに利用できるようになります。クライアント上で作業を続けると、つまりクライアント上でいくつかのエンティティを変更したり、さらに多くのエンティティをクエリーして取得すると、クライアントビューは、単なる EF(または RIA)クエリーにはない多彩な動作を見せ始めます。

クライアントビューを作成するための出発点は、EntityClientScopeRiaClientScope)の GetItems メソッドです。

C#
コードのコピー
ClientView<Product> products = _scope.GetItems<Product>();

RIA サービス(Silverlight)の場合は次のようになります。

C#
コードのコピー
ClientView<Product> products = _scope.GetItems<Product>("GetProducts");

(RIA サービスでは、ドメインサービスでクエリーメソッドの名前を指定する必要があります)

このように基本のクエリーを作成したら、ビューに対してフィルタ処理やページングを適用できます。フィルタ処理やページングは(キャッシュにデータが見つからない場合は)サーバー上で実行される操作なので、ClientView に対してこれらの操作を適用すると、別の ClientView が生成されます。グループ化やソートなどの LINQ 演算子もクライアントビューに対して適用できます。その結果は View になります。これは ClientView の基本クラスで、これもライブビューです。ただし、これらの演算子はサーバーを必要とせず、完全にクライアント上で実行できるため、ClientView の機能を必要としません。