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

¿Cómo RegisterClassMap para todas las clases en un espacio de nombres para MongoDb?

No necesita escribir BsonClassMap.RegisterClassMap<MyClass>(); , porque todas las clases se asignarán automáticamente de forma predeterminada.

Debe usar RegisterClassMap cuando necesite una serialización personalizada:

 BsonClassMap.RegisterClassMap<MyClass>(cm => {
        cm.AutoMap();
        cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
    });

También puede usar atributos para crear serialización administrada (parece más nativo para mí):

[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert

También puede crear reglas globales que se usan durante el mapeo automático, como esta:

var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);

Estoy usando solo atributos y convenciones para administrar el proceso de serialización.

Espero que esta ayuda.