sql >> Databáze >  >> NoSQL >> MongoDB

Jak zaregistrovatClassMap pro všechny třídy ve jmenném prostoru pro MongoDb?

Nemusíte psát BsonClassMap.RegisterClassMap<MyClass>(); , protože všechny třídy budou ve výchozím nastavení automaticky mapovány.

Měli byste použít RegisterClassMap když potřebujete vlastní serializaci:

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

Také můžete použít atributy k vytvoření správy serializace (pro mě to vypadá jako nativní):

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

Můžete také vytvořit globální pravidla, která se používají během automatického mapování, jako je toto:

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

Ke správě procesu serializace používám pouze atributy a konvence.

Doufám, že to pomůže.



  1. Proč by se tento db.eval -> array.push pro určité záznamy spouštěl dvakrát?

  2. Jak odstranit jeden „dokument“ pomocí „ID“ pomocí oficiálního ovladače C# pro MongoDB?

  3. MongoDB $group (mongo hřiště)

  4. Proč byste měli stále používat úložiště MMAPv1 pro MongoDB