使用10gen mondgo db c#driver.I有以下类
[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; }
默认情况下,如果我没有发送UserInput或Feedback(任何字符串)的值,mongodb将它们设为null
。在插入或获取数据时,有没有办法用string.empty
覆盖它。
尝试设置[BsonDefaultValue("")]
,但这也没有用。
答案 0 :(得分:10)
[BsonDefaultValue(“”)]仅在从数据库中读取没有相应字段值的文档时适用。如果希望在内存中创建的新对象具有null以外的值,则需要在构造函数中设置该值。此外,当您将对象保存到数据库时,如果该字段为null,那么这就是保存并回读的内容。
因此,只需在构造函数中设置默认值即可处理在内存中创建的新对象(并可能插入数据库),并使用[BsonDefaultValue]处理读回可能没有相应字段的文档。