カスタム データ アクセス レイヤーを使用して、データベースからドメイン オブジェクト (顧客、注文など) を読み取ります。このデータ アクセス レイヤーは、ページングまたは並べ替えをサポートしていません。
WCF RIA サービスを使用して、データの一部 (顧客など) を Silverlight クライアントに公開したいと考えています。クライアントでは、ページングを使用してデータ グリッドを表示したいと考えています。
RIA DomainService には、次のような関数があります。
IQueryable<Customer> GetCustomers()
{
List<Customer> customers = OurPersisteceLayer.GetAllCustomers();
return customers.AsQueryable()
}
この関数は、データベースからすべての顧客レコードを読み取ります。このシナリオでは、RIA はいかなる形式のサーバー側ページングも実行できないと思います。関数が呼び出されると、常にすべての顧客を読み取ります。
私の質問は次のとおりです。
RIA は顧客リストをクライアントにキャッシュしますか (そして GetCustomers を 1 回だけ呼び出します)、それともユーザーがデータ グリッドの次のページに移動するたびに操作を実行しますか?
私のシナリオでは、操作の実行に 5 秒かかる場合があります。これは、1 回実行された場合は許容されますが、ユーザーがデータ グリッドの新しいページに移動するたびに 5 秒かかる場合は許容されません。
RIA を使用して従来のデータ アクセス レイヤーにアクセスし、ページングを使用する場合に使用する適切なソリューション/パターン/方法はありますか?