4

使用 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; }

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

4

1 回答 1

17

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

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

于 2012-04-10T14:55:31.477 回答