2012-04-10 22 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]來處理可能沒有相應字段的回讀文檔。