2012-04-04 45 views
0

我使用C#和MongoDB官方驅動。使用BsonClassMap類映射我的實體時遇到問題。下面是一些示例代碼:MongoDB SetDefaultValue不起作用 - 爲什麼?

BsonClassMap.RegisterClassMap<Article>(cm => 
{ 
     cm.AutoMap(); 
     cm.GetMemberMap(c => c.Title).SetElementName("title").SetDefaultValue("abc"); 
} 

當我將它保存到數據庫,我總是在標題字段爲空值,而不是預期的「ABC」。我試過枚舉類型並得到同樣的問題 - 我哪裏出錯了?

回答

2

在反序列化過程中使用默認值將值分配給字段或屬性如果被反序列化的文檔沒有該字段或屬性的值。

如果在內存中爲Title屬性創建一個空值的對象,那麼null將存儲在數據庫中。僅僅因爲標題爲空並不意味着它將在保存文檔時被替換爲默認值。

+0

太感謝你了,你是對的。在反序列化之前,我只是從db中刪除了「title」字段,然後我得到了可愛的「abc」,我對官方教程感到有點困惑,在「默認值」部分,它會打印序列化:),新手,謝謝你的回答。 – 2012-04-05 13:58:16