当Marten将文档存储在数据库上时,它可能会忽略类属性吗?
例如。:
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; }
}
当Marten将文档存储在数据库上时,它可能会忽略类属性吗?
例如。:
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; }
}
解决了
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
[IgnoreDataMember]
public Date DateOfBirth { get; set; }
}
Marten 只是在后台使用 Newtonsoft.Json,所以要忽略属性,请使用 Newtonsoft JsonIgnoreAttribute:
public class Account
{
public string FullName { get; set; }
public string EmailAddress { get; set; }
[JsonIgnore]
public string PasswordHash { get; set; }
}
这似乎是谷歌搜索顶部可见的问题,所以我想加我的 50 美分。
由于 MartenDB 在内部使用 Newtonsoft.Json,因此该库中的所有属性都应该可以正常工作。我不知道 Igor的答案,无法在图书馆的任何地方确认这一点,所以它目前似乎已经过时了。
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; }
}
更详细的示例:文档