J'utilise le pilote mongodb officiel pour C# dans mon projet de test et j'ai déjà inséré le document de l'application web C# à mongodb. Dans la console mongo, db.blog.find() peut afficher les entrées que j'ai insérées. "Lorsque j'ai essayé de les récupérer, .net lancer une exceptionRécupérer des données de mongodb en utilisant le pilote C#
" System.InvalidOperationException: ReadString ne peut être appelé que lorsque CurrentBsonType est String, pas lorsque CurrentBsonType est ObjectId. "
ma classe d'entité est très simple
namespace MongoDBTest
{
public class Blog
{
public String _id
{
get;
set;
}
public String Title
{
get;
set;
}
}
}
et voici mon récupérer le code
public List<Blog> List()
{
MongoCollection collection = md.GetCollection<Blog>("blog");
MongoCursor<Blog> cursor = collection.FindAllAs<Blog>();
cursor.SetLimit(5);
return cursor.ToList();
}
quelqu'un peut me aider? Merci!
salut Andrew Orsich, merci pour votre réponse. –
Bonjour Andrew Orsich, J'ai inséré un document en utilisant ** BsonDocument ** et mongodb génère automatiquement ObjectId pour le document et le stocke, quand j'utilise MongoCollection et appelez la méthode FindAllAs , méthode ReadString throws exception. ** Donc, je mets MongoCollection à MongoCollection et l'objet curseur traversal dans l'instruction foreach pour convertir chaque document en objet blog **. De toute façon, votre réponse m'a aidé à résoudre mon problème, merci :) –
Une solution plus simple serait de changer le type de données de votre ID en ObjectId et de le décorer avec [BsonId].J'ai couru dans le même message d'erreur, et faire ce changement l'a corrigé pour moi. – CodeMonkey1313