2012-04-10 44 views
2

使用10gen的mondgo分贝C#driver.I有下面的类MongoDB的C#从空字符串的司机覆盖默认值的String.Empty

[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或反馈(任何字符串)的值mongodb把它们作为null。有没有什么办法可以在插入数据时或者在读取数据时用string.empty覆盖它。 试过设置[BsonDefaultValue("")]但这也没有工作。

回答

10

[BsonDefaultValue(“”)]仅适用于从数据库中读取没有相应字段值的文档。如果你想要在内存中创建的新对象具有非空值,你需要在你的构造函数中设置该值。此外,如果该字段为空,则将对象保存到数据库时,则会保存并读回该内容。因此,只需在构造函数中设置默认值以处理在内存中创建的新对象(并且可能插入到数据库中)并使用[BsonDefaultValue]来处理可能没有相应字段的回读文档。