2016-05-23 4 views
0

RavenDBを使い始めたばかりで、関連ドキュメントに関するドキュメントを勉強しました。私が考えているシステムには、ファミリーとメンバーの2つのクラスがあります。関連するドキュメントをRavenDBで1つのオブジェクトとして表現

家族は多くのメンバーを持つことができ、メンバーは多くの家族に所属することができます。メンバーは個別に検索して更新することもできます。私が読んでいることから、これをモデル化する適切な方法は、家族のための文書とメンバーのための別の文書を持つことです。ファミリーにMemberIdsのリストが含まれるようにする。

素晴らしい!

上記のアプローチは、https://ravendb.net/docs/article-page/3.0/csharp/indexes/querying/handling-document-relationships

でRavenDBサイトに記載されているが、これはあなたが個別のオブジェクトのそれぞれを扱うことを意味します。個別のLoadコマンドを使用して、Memberオブジェクトを個別に「フェッチ」する必要があります。 Includeを使用して関連するすべてのオブジェクトをセッションに「プリフェッチ」しても、それぞれに個別のLoadコマンドを発行する必要があります。

これは、ファミリーオブジェクトにはメンバーオブジェクトのリストが含まれていないが、MemberIdsのリストのみが含まれていることを意味します。

これは私の質問です。関連するドキュメントから複雑なオブジェクトを返すようにする方法はありますか?Familyオブジェクトを返すと、関連するメンバオブジェクトのリストが含まれますか?私は、メンバーオブジェクトを直接ファミリーオブジェクトに入れるとこれを行うことができますが、メンバーオブジェクトを別の場所(他のファミリ)で使用することはできません。

さらに、特定の埋め込みリストを同じドキュメントに格納するのではなく、関連するドキュメントに「分解する」ようにRavenDBに指示する方法はありますか?

これは非常に有益なことだと思われます。

答えて

0

これにはトランスを使用できます。はい。

+0

ありがとうございます!私は変圧器がデータを所望のフォーマットに引き出すためにどのように使用できるかを見ていますが、データを保存するのはどうですか?言い換えれば、複雑なモデルを渡し、その特定の要素を関連する文書として保存する場合、その逆を行うことができますか? –

+0

いいえ、それは不可能です。あなたのモデルに問題がある可能性があります。 –