1

異種ドキュメントを返すインデックスにクエリを実行する場合、結果セットを操作する最善の方法/最も広く使用されている/最も広く受け入れられている方法は何ですか?

明白な答えは、それらを共通の基本型としてロードしてから、より具体的な型にアップキャストすることですが、これはスケーラブルではないようです。

これが関連していることがわかる一般的なシナリオは、検索です。

4

1 に答える 1

1

よく見ると、結果がすでにPOCO になっていることがわかります。Raven-Entity-Nameこれらは、メタデータに基づいてレイヴン クライアントによってハイドレートされます。

確かに、共通の基本型またはインターフェイスを使用できます。無関係なデータがたくさんある場合は、object. その後、アプリでそれらをフィルタリングして適切にキャストするか、そのまま使用することができます。

実験としてこれを試してください。関連のない 3 つの別個のエンティティ タイプのいくつかのドキュメントを保存し、マルチマップ バックします。または、複数の異なるドキュメント タイプを返す任意のインデックスに反対します。一体、スタジオのビルドでさえRaven/DocumentsByEntityNameそれを行うべきです. 次のように、このインデックスに対してクエリを実行します。

var results = session.Query<object>("Raven/DocumentsByEntityName");

(通常は、古くない結果、ToList などを待ちます)

ブレークポイントを設定し、返された結果を確認します。それらはすべて実際に正しい型であり、返されたドキュメントに応じて型が異なるだけです。あなたが彼らとやりたいことをしてください。

于 2013-01-09T14:04:32.163 に答える