我在我的測試項目中使用官方的mongodb驅動程序進行c#,並且已經將文檔從c#web應用程序插入到mongodb中。在mongo控制檯中,db.blog.find()可以顯示我插入的條目。但是當我試圖檢索它們時,.net拋出異常使用C#驅動程序從mongodb中檢索數據
「System.InvalidOperationException:ReadString只能在CurrentBsonType爲String時調用,而不能在CurrentBsonType爲ObjectId時調用。
我的實體類是非常簡單的
namespace MongoDBTest
{
public class Blog
{
public String _id
{
get;
set;
}
public String Title
{
get;
set;
}
}
}
,這是我的檢索碼
public List<Blog> List()
{
MongoCollection collection = md.GetCollection<Blog>("blog");
MongoCursor<Blog> cursor = collection.FindAllAs<Blog>();
cursor.SetLimit(5);
return cursor.ToList();
}
任何人可以幫助我嗎?謝謝!
嗨Andrew Orsich,謝謝你的回覆。 –
嗨Andrew Orsich,我已經使用** BsonDocument **和mongodb自動生成ObjectId文件並存儲它,當我使用MongoCollection插入文檔並調用FindAllAs 方法時,ReadString方法拋出異常。 **因此,我將MongoCollection 更改爲MongoCollection ,並在foreach語句中遍歷遊標對象以將每個文檔轉換爲博客對象**。無論如何,你的回覆幫助我解決了我的問題,謝謝你:) –
更簡單的解決方法是將ID的數據類型更改爲ObjectId並用[BsonId]裝飾它。我遇到了同樣的錯誤信息,並且爲我修復了這個問題。 – CodeMonkey1313