MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Recupera i dati da mongodb usando il driver C#

Suppongo che tu debba solo contrassegnare l'ID del tuo blog con BsonId (e inserisci tu stesso l'id) attributo:

public class Blog
{
    [BsonId]
    public String Id {get;set;}

    public String Title{get;set;}
}

E tutto dovrebbe andare bene. Il problema era dovuto al fatto che non hai contrassegnato quale campo sarà Mongodb _id e il campo _id generato dal driver con il tipo ObjectId. E quando il driver prova a deserializzarlo di nuovo, non può convertire ObjectId in String.

Esempio completo:

MongoCollection collection = md.GetCollection<Blog>("blog");
var blog = new Blog(){Id = ObjectId.GenerateNewId().ToString(), 
                      Title = "First Blog"};
collection .Insert(blog);

MongoCursor<Blog> cursor = collection.FindAllAs<Blog>();
cursor.SetLimit(5);

var list = cursor.ToList();