Je suppose que vous avez juste besoin de marquer l'identifiant de votre blog avec BsonId
(et insérez l'identifiant vous-même) attribut :
public class Blog
{
[BsonId]
public String Id {get;set;}
public String Title{get;set;}
}
Et tout devrait bien se passer. Le problème était dû au fait que vous n'aviez pas marqué quel champ serait Mongodb _id et le champ _id généré par le pilote avec le type ObjectId. Et lorsque le pilote essaie de le désérialiser, il ne peut pas convertir ObjectId en String.
Exemple complet :
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();