Това е гранично с грешка в C# драйвера. Оказва се, че IdMemberMap не е дефиниран, докато картата на класовете не бъде "замразена", поради причини, свързани с йерархии на класове, в които идентификаторът може действително да бъде дефиниран в базов клас. Един от начините да заобиколите това е:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.Freeze();
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
Друг начин за заобикаляне е да използвате GetMemberMap вместо IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});