To je hraniční chyba v ovladači C#. Ukázalo se, že IdMemberMap není definována, dokud není mapa tříd „zmrazena“, z důvodů souvisejících s hierarchiemi tříd, ve kterých může být Id ve skutečnosti definováno v základní třídě. Jeden způsob, jak to obejít, je:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.Freeze();
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
Dalším způsobem, jak to obejít, je použít GetMemberMap místo IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});