我在我的测试项目中使用官方的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