sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur registrerar man ClassMap för alla klasser i ett namnområde för MongoDb?

Du behöver inte skriva BsonClassMap.RegisterClassMap<MyClass>(); , eftersom alla klasser kommer att automatiskt mappas som standard.

Du bör använda RegisterClassMap när du behöver anpassad serialisering:

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

Du kan också använda attribut för att skapa hantera serialisering (det ser ut som mer inbyggt för mig):

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

Du kan också skapa globala regler som används under automapping, som den här:

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

Jag använder endast attribut och konventioner för att hantera serialiseringsprocessen.

Hoppas detta hjälper.



  1. Bygga MongoDB C-drivrutin i Windows

  2. Skicka filen till aktivt jobb / bakgrundsjobb

  3. Hur kunde jag konvertera en byte till en hel hex-sträng?

  4. Använda MongoDB-skalkommandon på MongoDB 10Gens drivrutin