RavenDB持久的关系链

时间:2013-02-03 17:56:46

标签: ravendb

我正在开发一个协作文档编辑工具,它将使用RavenDB进行持久化。在我的域中,我有一个看起来像这样的文档类。

 public class Document
{      
    public string Id { get; private set; }
    public string Name { get; set; }
    public IRevision CurrentRevision {get; private set; }
    public string Contents {get { return CurrentRevision.GenerateEditedContent(); }}
}

正如您所看到的那样,该文档的CurrentRevision属性指向一个看起来像这样的IRevision对象。

public interface IRevision
{
    IRevision PreviousRevisionAppliedTo { get; }
    IRevision NextRevisionApplied { get; set; }
    Guid Id { get; }

    string GenerateEditedContent();
}

所以基本的想法是通过检查当前版本来动态生成文档的内容,然后检查它的父版本,依此类推等等。

开箱即用,RavenDB似乎没有按照我需要的方式处理这个对象引用链。我一直试图通过调用Session.Store(文档)来保持它,并希望相关修订的列表也会被存储。我已经查看了RavenDB框架的一些部分,比如自定义序列化程序,但是我无法找到一条清晰的路径,可以让我按照自己的意愿反序列化和重新序列化数据。什么是处理这种情况的好方法。

0 个答案:

没有答案