非常に大きなテーブルで情報を検索する方法を開発しています。ORDER BY
クエリで特別なもの (単純な のみ) を使用していないためSELECT id,description FROM complain WHERE description like 'YOUR TEXT HERE'"
、結果のバッチを返すことで、より動的なユーザー エクスペリエンスを提供したいと考えていました。これは、Management Studio でクエリを実行するのと似ています。
いくつかの詳細、私の呼び出しスタックは大きくありませんが、すべてが同じメソッドにあるわけではありません。がありbuttonSearchClick
、それぞれが異なるレイヤーにあります (それぞれインターフェイス、SearchBLL、SearchDAL) performCleanSearch
。searchComplainBasedOnDetailInfo
のようなものを満たす非同期メソッドを作成することを考えましたList<Complain>
が、それはきれいに見えません。非同期の 3 つのレイヤーを作成する必要があります。これを実装する方法について誰かがより良いアイデアを持っていますか? それとも、これが最善の方法ですか?
Edit1:接続文字列で Async Processing と共に SqlCommand.BeginExecuteReader を使用して、表示されるクエリから結果をフェッチすることができました...今度は、DAL メソッドを非同期にする方法を見つけなければなりません。レイヤーは非同期でも結果を取得できます...私はある種のバッファを実装することを考えていました...多分キュー...
Edit2:ページング ソリューションや twitter のようなもの (スクロールして新しい結果が検索される) を探しているわけではありません。