MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да регистрирамClassMap за всички класове в пространство от имена за MongoDb?

Не е необходимо да пишете BsonClassMap.RegisterClassMap<MyClass>(); , защото всички класове ще бъдат автоматично картографирани по подразбиране.

Трябва да използвате RegisterClassMap когато имате нужда от персонализирано сериализиране:

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

Също така можете да използвате атрибути, за да създадете управлявана сериализация (изглежда по-родна за мен):

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

Също така можете да създадете глобални правила, които се използват по време на автоматично картографиране, като това:

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

Използвам само атрибути и конвенции за управление на процеса на сериализация.

Надявам се това да помогне.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да конфигурирате нов порт за mongodb

  2. mongoDB upsert върху масив

  3. Защо посоката на индекса има значение в MongoDB?

  4. Използвайте един MongoClient в уеб услуга на JavaEE

  5. Разлики между com.mongodb.client.MongoClient и com.mongodb.MongoClient