Tôi cho rằng bạn chỉ cần đánh dấu Id blog của mình bằng BsonId
(và tự chèn id) thuộc tính:
public class Blog
{
[BsonId]
public String Id {get;set;}
public String Title{get;set;}
}
Và tất cả sẽ ổn. Vấn đề là do bạn không đánh dấu trường nào sẽ là Mongodb _id và trường _id do trình điều khiển tạo với loại ObjectId. Và khi người lái xe cố gắng giải mã hóa nó trở lại, anh ta không thể chuyển đổi ObjectId thành Chuỗi.
Toàn bộ ví dụ:
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();