MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

IdMemberMap é nulo usando as opções de serialização de representação


Isso é limítrofe para ser um bug no driver C#. Acontece que IdMemberMap não é definido até que o mapa de classe seja "congelado", por motivos relacionados a hierarquias de classe nas quais o Id pode realmente ser definido em uma classe base. Uma maneira de contornar isso é:
BsonClassMap.RegisterClassMap<Person>(cm => {
    cm.AutoMap();
    cm.Freeze();
    cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});

Outra maneira de contornar é usar GetMemberMap em vez de IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
    cm.AutoMap();
    cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});