Đây là ranh giới để trở thành một lỗi trong trình điều khiển C #. Hóa ra IdMemberMap không được định nghĩa cho đến khi bản đồ lớp bị "đóng băng", vì lý do phải làm với cấu trúc phân cấp lớp trong đó Id thực sự có thể được xác định trong một lớp cơ sở. Một cách để giải quyết vấn đề này là:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.Freeze();
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
Một cách khác để khắc phục là sử dụng GetMemberMap thay vì IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});