すべてのエンティティを遅延なく一度にロードするには大きすぎるクライアントビューがある場合は、ProgressiveLoading メソッドを使用して、インクリメンタルかつプログレッシブにロードすることができます。
C# |
コードのコピー
|
---|---|
ProgressiveView<Product> moreResponsiveView = productsByCategory.ProgressiveLoading(p => p.ProductName, 100); |
ここでは、任意のクライアントビューをプログレッシブにできることを示すため(プログレッシブにする意味がないページングビューを除く)、製品の代わりに productsCategory(FilteredView)を意図的に使用しています。
プログレッシブビューは、データを複数の部分に分けてロードし、各部分がロードされるたびに直ちにクライアント上でデータを使用可能にします。
この種のロードを行うには、サーバー上でデータがソートされている必要があるため、プログレッシブビューを作成するには、ロードサイズ(上の例では 100)のほかに、ソートの基準になるキーセレクタを指定する必要があります。
Entity Framework を使用する場合、エンティティクエリーと一緒に関連するエンティティをフェッチする必要があることを指定したいことがあります。たとえば、注文に対するクエリーを行う場合に、注文をフェッチするのと同じクエリーで注文の顧客情報を取得して、後で顧客情報を1つずつフェッチする操作(1つのクエリーですべてを取得する操作よりはるかに低速)を回避したいことがあります。それには、Entity Framework で ObjectQuery の Include メソッドを使用します。DataSource の ClientView.Include メソッドにも同じ機能があります。
C# |
コードのコピー
|
---|---|
ClientView<Order> ordersWithCustomerInfo = orders.Include("Customer");
|