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

C# MongoDB:Как правилно да картографирате обект на домейн?

Възможно е да се сериализират/десериализират класове, където свойствата са само за четене. Ако се опитвате да запазите устойчивостта на обектите на вашия домейн в неведение, няма да искате да използвате BsonAttributes за насочване на сериализацията и както посочихте AutoMapping изисква свойства за четене/запис, така че ще трябва сами да регистрирате картите на класовете. Например класът:

public class C {
    private ObjectId id;
    private int x;

    public C(ObjectId id, int x) {
        this.id = id;
        this.x = x;
    }

    public ObjectId Id { get { return id; } }
    public int X { get { return x; } }
}

Може да се картографира с помощта на следния код за инициализация:

BsonClassMap.RegisterClassMap<C>(cm => {
    cm.MapIdField("id");
    cm.MapField("x");
});

Имайте предвид, че частните полета не могат да бъдат само за четене. Обърнете внимание също, че десериализацията заобикаля вашия конструктор и директно инициализира частните полета (.NET сериализацията също работи по този начин).

Ето пълна примерна програма, която тества това:

http://www.pastie.org/1822994



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. инсталирането на mongodb-10gen е неуспешно с apt-get

  2. 5 начина за избор на редове с максимална стойност за тяхната група в SQL

  3. Node.js MongoDB Find с проекция за изключване на _id все още го връща

  4. Намерете и премахнете всички документи, чиято дата на създаване е един месец по-стара

  5. MongoDB агрегира групиране на вътрешна дъщерна колекция и получава пълен документ с брой