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

Como RegisterClassMap para todas as classes em um namespace para MongoDb?


Você não precisa escrever BsonClassMap.RegisterClassMap<MyClass>(); , porque todas as classes serão automaticamente mapeadas por padrão.

Você deve usar RegisterClassMap quando você precisa de serialização personalizada:
 BsonClassMap.RegisterClassMap<MyClass>(cm => {
        cm.AutoMap();
        cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
    });

Além disso, você pode usar atributos para criar gerenciar a serialização (parece mais nativo para mim):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert

Além disso, você pode criar regras globais usadas durante o mapeamento automático, como esta:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);

Estou usando apenas atributos e convenções para gerenciar o processo de serialização.

Espero que esta ajuda.