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 回答