2

ここに私のオブジェクトがあります:

public class CMSContentItemFolder
{
    int Id {get; set; }
    public Guid InstanceId { get; set; }
    public List<CMSContentItemFolder> ContentItemFolders { get; set; }
    public List<CMSContentItem> ContentItems { get; set; }
}

そのため、C ドライブのシステム フォルダーのように、フォルダーには無限のレベルのサブフォルダーを含めることができます。

フォルダーとその子に対して CRUD を実行するには、再帰的なメソッドを作成する必要があります。これは機能しますが、少し面倒です。Patching API の方が優れていることはわかっていますが、再帰オブジェクトに対して機能する例は見たことがありません。

RavenDbでこれを行う最良の方法は何ですか?

ありがとう!

4

1 に答える 1

0

両方ではなく、カプセル化または参照を使用してモデル化する必要があります。オブジェクトで、ネストされたCMSContentItemFolderのIDの目的は何ですか?おそらく代わりに参照する必要があります。そして、同じことがコンテンツアイテムにも当てはまります。それらはおそらくそれぞれ独自のドキュメントにあります。

public List<int> ContentItemFolderIds { get; set; }
public List<int> ContentItemIds { get; set; }

そうすれば、パッチを適用するときに対処する再帰がなくなります。

于 2013-01-07T22:50:22.973 に答える