2012-03-16 10 views
0

私はデータベースを照会し、次にIQueryableを元にしたMVC3プログラムを持っていますが、元のIQueryableの項目を含むがわずかに後処理された新しいIQueryableオブジェクトをクエリが構築します。コンテナとして使用できるIQueryableの実装はありますか?

もちろん最初の方でより良いクエリを作成できますが、問題は後処理がSQLで簡単ではないことですが、C#で簡単にやります。

実際には、私はIQueryableを実装するコンテナのようなクラスが必要です。私はそれを自分で実装することを考えていません。

IQueryableを実装するレディークラスがありますか?

答えて

2

あなたの質問は奇妙です。 すべての結果を前処理したい場合は、すべての結果を最初にロードして前処理する必要があります。その後、それらはIEnumerableに格納されます。合理的な結果が得られ、サーバーのソートなどが必要ない場合は、良いアイデアのように思えます。

もう1つの方法は、SelectをIQueryableに追加して、実際にロードせずに処理します。データ(処理はサーバー側で行われます)。しかし、この場合は、使用するORMの実装によって非常に制限されます。

次のやり方では、拡張処理ロジックを実行し、IQueryableを介して結果を得ることは、SQLサーバーのテーブル値関数(またはビュー)にすべての処理ロジックを入れて、それをORMにマッピングします。それを照会する。

IQueryableの全体的なアイデアは、データを持たず、列挙時に実行されるDBクエリの定義のみです。

関連する問題