Marten JasperFx - 如何在生成文档时忽略类的属性

时间:2017-07-26 16:51:15

标签: postgresql marten nosql

Marten在数据库上存储文档时,它可能会忽略class属性吗?

例如:

    public class Test
    {
        public int Id { get; set; }
        public string Name { get; set; }
        [Ignore this when create a document on DB]
        public Date DateOfBirth { get; set; }
    }

2 个答案:

答案 0 :(得分:1)

<强>解决

public class Test
{
   public int Id { get; set; }
   public string Name { get; set; }
   [IgnoreDataMember]
   public Date DateOfBirth { get; set; }
}

答案 1 :(得分:0)

说明

这似乎是在Google搜索上可见的问题,所以我想加50美分。

由于MartenDB在内部使用Newtonsoft.Json,因此该库中的所有属性都可以正常工作。我不知道Igor answer,无法在库中的任何地方确认这一点,因此目前看来已经过时了。

来自docs

Marten持久性策略中绝对必要的组成部分是文档对象的JSON序列化。 Marten旨在通过每个JSON序列化库中的本机机制使JSON序列化可扩展和可配置。为了使故事顺利进行,Marten开箱即用,支持Newtonsoft.Json作为主要的JSON序列化程序的最基本用法。

关于MartenDB中的Newtonsoft.json

MartenDB与Newtonsoft.json无关,您始终可以为其他库编写自己的适配器。

您所要做的就是实现ISerializer接口:

public interface ISerializer
{
    void ToJson(object document, TextWriter writer);

    string ToJson(object document);

    T FromJson<T>(TextReader reader);

    object FromJson(Type type, TextReader reader);

    string ToCleanJson(object document);

    EnumStorage EnumStorage { get; }

    Casing Casing { get; }

    CollectionStorage CollectionStorage { get; }

    NonPublicMembersStorage NonPublicMembersStorage { get; }
}

更详细的示例:[docs] 9https://martendb.io/documentation/documents/json/jil/)