Detta är på gränsen till att vara en bugg i C#-drivrutinen. Det visar sig att IdMemberMap inte definieras förrän klasskartan är "fryst", av skäl som har att göra med klasshierarkier där Id:t faktiskt kan definieras i en basklass. Ett sätt att kringgå detta är:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.Freeze();
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
Ett annat sätt att kringgå är att använda GetMemberMap istället för IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});