MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie registriert man ClassMap für alle Klassen in einem Namespace für MongoDb?

Sie brauchen nicht BsonClassMap.RegisterClassMap<MyClass>(); zu schreiben , da alle Klassen standardmäßig automatisch zugeordnet werden.

Sie sollten RegisterClassMap verwenden wenn Sie eine benutzerdefinierte Serialisierung benötigen:

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

Sie können auch Attribute verwenden, um die Serialisierung zu verwalten (es sieht für mich nativer aus):

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

Sie können auch globale Regeln erstellen, die während der automatischen Zuordnung verwendet werden, wie diese hier:

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

Ich verwende nur Attribute und Konventionen, um den Serialisierungsprozess zu verwalten.

Hoffe, das hilft.