0

現在、複数のインスタンスをデータ ソースとして登録できるデータ オブジェクトのリポジトリ パターンについて考えていますIQueryable<>が、実行するのはそれほど簡単ではないようです。

LINQ to entities と LINQ To Objects を使用して単純な LINQ クエリを実行しても機能しません。これは一般的に可能だと思いますか?おそらく唯一の解決策は、指定されたプロバイダーを作成することですか?

私のリポジトリでは.Union<>()、すべての IQueryable インスタンスを呼び出し、最終的に LINQ を使用して結果の単一のIQueryable. その結果、1 つIQueryableは完全に無視されました。

4

2 に答える 2

0

ええと、私はリストやコレクションでLINQクエリを使用しています。SQLテーブルで非常によく似たクエリを使用します。何の問題もありませんでした。LINQ toオブジェクトでLINQクエリを使用する際に問題が発生するという話を聞いたことがありますが、LINQ to Object、LINQ to XML、およびLINQ to SQLの動作方法の設計上の違いではなく、一般にLINQバグと見なされていると思います。VS 2008 SP1をインストールする前の数日間、いくつかのLINQの問題がありましたが、その後解決されました。

クエリが何を返すかを考慮に入れている限り、問題なく機能するはずです。

于 2008-12-04T23:53:21.343 に答える
-2

これをバックアップするためのドキュメントはまったくありませんが、Linq to SQL IQueryableで操作を実行するときにデータベースへの複数の呼び出しを排除しようとする、LinqtoSQLに組み込まれていた最適化についてのプレリリース日の議論を思い出します。 <>オブジェクトとLinqtoObjectIQueryable<>オブジェクト。これをIQueryableインターフェイスの全体的なアーキテクチャと組み合わせると、さまざまなプロバイダーでの動作に問題はないはずだと思います。ただし、対話する機能は、プロバイダーの特定の実装に基づいている可能性があります。

LinqtoObjectおよびLinqtoXMLコレクションの組み合わせを問題なく操作したことはわかっています。

于 2008-12-04T23:59:43.640 に答える