Używam oficjalnego sterownika mongodb dla C# w moim projekcie testowym i już wstawiłem dokument z aplikacji webowej C# do mongodb. W konsoli mongo db.blog.find() może wyświetlać wpisy, które wstawiłem. ale kiedy próbowałem je odzyskać, .net rzucić wyjątekOdzyskiwanie danych z mongodb za pomocą C# sterownika
"System.InvalidOperationException: ReadString można wywołać tylko wtedy, gdy CurrentBsonType jest String, a nie gdy CurrentBsonType jest ObjectId."
moja klasa jednostka jest bardzo prosta
namespace MongoDBTest
{
public class Blog
{
public String _id
{
get;
set;
}
public String Title
{
get;
set;
}
}
}
a to mój pobrać kod
public List<Blog> List()
{
MongoCollection collection = md.GetCollection<Blog>("blog");
MongoCursor<Blog> cursor = collection.FindAllAs<Blog>();
cursor.SetLimit(5);
return cursor.ToList();
}
Czy ktoś może mi pomóc? dzięki!
Cześć Andrew Orsich, dzięki za odpowiedź ur. –
hi Andrew Orsich, Wstawiłem dokument za pomocą ** BsonDocument ** i mongodb auto generuję ObjectId dla dokumentu i przechowuję go, gdy używam MongoCollection i wywołuję metodę FindAllAs , metoda ReadString zgłasza wyjątek. ** Więc zmienię MongoCollection na MongoCollection i obiekt kursora ruchu w instrukcji foreach, aby przekonwertować każdy dokument na obiekt bloga **. Tak czy inaczej, odpowiedź ur pomogła mi rozwiązać mój problem, dziękuję :) –
Łatwiejszą poprawką byłoby zmienić typ danych identyfikatora na ObjectId i udekorować go [BsonId].Wystąpił ten sam komunikat o błędzie, a zmiana ta naprawiła to za mnie. – CodeMonkey1313