我正在使用 C# 和 mongodb 官方驱动程序。使用 BsonClassMap 类映射我的实体时遇到问题。这是一些示例代码:
BsonClassMap.RegisterClassMap<Article>(cm =>
{
cm.AutoMap();
cm.GetMemberMap(c => c.Title).SetElementName("title").SetDefaultValue("abc");
}
当我将它保存到数据库时,我总是在标题字段中得到一个空值,而不是预期的“abc”。我已经尝试过枚举类型并遇到了同样的问题 - 我哪里出错了?
最佳答案
如果被反序列化的文档没有该字段或属性的值,则在反序列化期间使用默认值为该字段或属性赋值。
如果您在内存中创建一个 Title 属性值为空的对象,则数据库中将存储一个空值。仅仅因为 Title 为 null 并不意味着它会在保存文档时被替换为默认值。
关于c# - MongoDB SetDefaultValue 不起作用 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013159/