sql >> Base de Datos >  >> NoSQL >> MongoDB

IdMemberMap es nulo usando las opciones de serialización de representación

Esto está en el límite de ser un error en el controlador de C#. Resulta que IdMemberMap no se define hasta que el mapa de clases se "congela", por razones que tienen que ver con jerarquías de clases en las que el Id podría estar definido en una clase base. Una forma de evitar esto es:

BsonClassMap.RegisterClassMap<Person>(cm => {
    cm.AutoMap();
    cm.Freeze();
    cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});

Otra forma de evitarlo es usar GetMemberMap en lugar de IdMemberMap:

BsonClassMap.RegisterClassMap<Person>(cm => {
    cm.AutoMap();
    cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});