当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; }
}
答案 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,无法在库中的任何地方确认这一点,因此目前看来已经过时了。
Marten持久性策略中绝对必要的组成部分是文档对象的JSON序列化。 Marten旨在通过每个JSON序列化库中的本机机制使JSON序列化可扩展和可配置。为了使故事顺利进行,Marten开箱即用,支持Newtonsoft.Json作为主要的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/)