【问题标题】:MongoDB c# driver override Default value of string from null to string.emptyMongoDB c#驱动程序覆盖字符串的默认值从null到string.empty
【发布时间】:2012-04-10 11:02:15
【问题描述】:

使用 10gen mondgo db c# 驱动程序。我有以下课程

[BsonId]
public ObjectId Id { get; set; }
public int AttemptId { get; set; }
public int UserId { get; set; }
public int QId { get; set; }
public string UserInput { get; set; }  
public string Feedback{ get; set; }

默认情况下,如果我不发送用户输入或反馈(任何字符串)的值,mongodb 将它们设置为null。有没有办法在插入或获取数据时用string.empty 覆盖它。 尝试设置[BsonDefaultValue("")],但这也没有用。

【问题讨论】:

    标签: mongodb mongodb-.net-driver


    【解决方案1】:

    [BsonDefaultValue("")] 仅在从数据库中读取没有相应字段值的文档时适用。如果您希望在内存中创建的新对象具有 null 以外的值,则需要在构造函数中设置该值。此外,当您将对象保存到数据库时,如果该字段为空,那么这就是保存并读回的内容。

    因此,只需在构造函数中设置默认值来处理在内存中创建的新对象(并且可能插入到数据库中)并使用 [BsonDefaultValue] 来处理可能没有相应字段的回读文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-14
      • 2022-12-03
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多