c# - MongoDB SetDefaultValue 不起作用 - 为什么?

标签 c# mongodb mapping

我正在使用 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/

相关文章:

c# - Asp.Net Core 重定向到 Action 但不允许直接调用 Action ?

mongodb - 查询查找所有非零毫秒的文档

c++ - 以数学方式旋转有序数字数组

c# - 如何在 Web api,C# 中的 Action 过滤器中获取帖子表单参数值?

c# - 使用 Entity Framework 获取单行而不获取所有数据

c# - 为什么Wpf的DrawingContext.DrawText这么贵?

mongodb - 在 Mongo 中,如何显示集合的索引?

mongodb - 使用命令行从 MongoDB 数据库中的所有集合中删除所有索引

cassandra - Datastax 驱动程序映射 按 ASC/DESC 排序

c - 是否可以将 char 中的位映射到 Short 中的任意位?