MongoDB c#driver override字符串的默认值,从null到string.empty

gsa*_*wal 2 mongodb mongodb-.net-driver

使用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; }
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*tam 11

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

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