告诉RavenDB忽略一个属性

Ben*_*son 17 c# ravendb

我有一个文档模型存储在RavenDB中,但我不想存储计算属性.如何告诉RavenDB忽略此属性?

在下面的例子中,我不想存储Duration.

public class Build
{
    public string Id { get; set; }
    public string Name { get; set; }
    public DateTime StartedAt { get; set; }
    public DateTime FinishedAt { get; set; }

    public TimeSpan Duration { get { return StartedAt.Subtract(FinishedAt); }}
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*cer 25

只需用以下方法装饰Duration房产[JsonIgnore]:

public class Build
{
    public string Id { get; set; }
    public string Name { get; set; }
    public DateTime StartedAt { get; set; }
    public DateTime FinishedAt { get; set; }

    [Raven.Imports.Newtonsoft.Json.JsonIgnore]
    //[Newtonsoft.Json.JsonIgnore] // for RavenDB 3 and up
    public TimeSpan Duration { get { return StartedAt.Subtract(FinishedAt); }}
}
Run Code Online (Sandbox Code Playgroud)

在这里查看更多:http://ravendb.net/docs/client-api/advanced/custom-serialization

  • "使用RavenDB的第2版,您需要使用Raven.Imports.Newtonsoft.Json命名空间中的属性而不是Newtonsoft.Json命名空间.将忽略Newtonsoft.Json命名空间." - 取自上述链接帖子的评论. (9认同)
  • RavenDB 3:使用 `[Newtonsoft.Json.JsonIgnore]` 而不是 `Raven.Imports.Newtonsoft.Json` 命名空间。似乎,自从@ChadT 对 v2 发表评论以来,他们已经改变了它。 (2认同)