Dit is op het randje van een bug in het C#-stuurprogramma. Blijkt dat IdMemberMap niet wordt gedefinieerd totdat de klassenkaart is "bevroren", om redenen die te maken hebben met klassenhiërarchieën waarin de Id feitelijk in een basisklasse kan worden gedefinieerd. Een manier om dit te omzeilen is:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.Freeze();
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
Een andere manier om dit te omzeilen is om GetMemberMap te gebruiken in plaats van IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});