我一直在使用MongoDB C#驅動程序,將一些文檔從我們當前的數據庫傳輸到MongoDB,另一種方式。我得到的問題是(簡而言之):雖然從MongoDB文檔中檢索DateTime的方法返回正確的日期/時間,但是當分配給我的C#對象的DateTime屬性時,它將恢復爲01/01/0001 12:00:00 AM,即分鐘DateTime值。C#(和MongoDB)DateTime轉換(從BSON到C#對象)
更多細節:
GetdateTime正在查詢的MongoDB(RDoc的是BSON文件),並返回正確的日期/時間:
Console.WriteLine(GetDateTime(rdoc, "recordedDate"));
的輸出是:
2010年6月3日10:00:00 AM
我將返回的值賦給我的c#對象:
doc.RecordedDate = GetDateTime(rdoc, "recordedDate");
但是當我訪問使用該屬性(r是我的C#對象):
Console.WriteLine(r.UserID + "," + r.DateCreated);
我得到: 123456,1/1/0001 12:00:00 AM
我設置我有日期時間字段:
set{ recordedDate = value.ToLocalTime(); }
僅舉這裏創造C#文檔時,只要保持這些文件到內存中,我實際上沒有更新我們的數據庫,然後重新保存它們以蒙戈(不要問),只是FO r測試目的。它不應該影響我所遇到的問題,其他所有領域都可以正常工作。
我知道有BSON和.NET的datetime對象之間的一些missmatch(BSON截斷蜱或某事的數),但不這是否是引起了我的問題......
順便說一句,我纔開始使用c#三天前,所以如果我錯過了這裏基本和明顯的東西,請輕輕地指出:)。
就是這樣! (謝謝指出) 我的r對象的類繼承了一個包含DateCreated屬性的類,但那個從未設置過,所以我得到了最短日期值。 – Aineko