Estoy usando el controlador mongodb oficial para C# en mi proyecto de prueba y ya he insertado el documento de la aplicación web C# a mongodb. En la consola mongo, db.blog.find() puede mostrar las entradas que he insertado. pero cuando traté de recuperarlos, .net lanza una excepciónRecuperar datos de mongodb usando el controlador C#
"System.InvalidOperationException: ReadString solo se puede invocar cuando CurrentBsonType es String, no cuando CurrentBsonType es ObjectId."
mi clase de entidad es muy simple
namespace MongoDBTest
{
public class Blog
{
public String _id
{
get;
set;
}
public String Title
{
get;
set;
}
}
}
y este es mi código de recuperar
public List<Blog> List()
{
MongoCollection collection = md.GetCollection<Blog>("blog");
MongoCursor<Blog> cursor = collection.FindAllAs<Blog>();
cursor.SetLimit(5);
return cursor.ToList();
}
alguien me puede ayudar? ¡Gracias!
hola Andrew Orsich, gracias por su respuesta. –
hola Andrew Orsich, he insertado el documento usando ** BsonDocument ** y mongodb auto generate ObjectId para documento y lo almacena, cuando uso MongoCollection y llamo FindAllAs , el método ReadString arroja una excepción. ** Así que cambio MongoCollection a MongoCollection y el objeto de cursor transversal en la declaración foreach para convertir cada documento a objeto de blog **. De todos modos, tu respuesta me ayudó a resolver mi problema, gracias :) –
Una solución más fácil sería cambiar el tipo de datos de tu ID a ObjectId y decorarlo con [BsonId].Me encontré con el mismo mensaje de error, y hacer ese cambio lo solucionó. – CodeMonkey1313