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

C# MongoDB:Jak správně namapovat doménový objekt?

Je možné serializovat/deserializovat třídy, kde jsou vlastnosti pouze pro čtení. Pokud se snažíte udržet stálost objektů vaší domény ignorovanou, nebudete chtít používat BsonAttributes k vedení serializace, a jak jste zdůraznili, AutoMapping vyžaduje vlastnosti pro čtení/zápis, takže byste si mapy tříd museli zaregistrovat sami. Například třída:

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; } }
}

Lze namapovat pomocí následujícího inicializačního kódu:

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

Všimněte si, že soukromá pole nemohou být pouze pro čtení. Všimněte si také, že deserializace obchází váš konstruktor a přímo inicializuje soukromá pole (serializace .NET funguje také tímto způsobem).

Zde je úplný ukázkový program, který to testuje:

http://www.pastie.org/1822994



  1. Odstraňování problémů se sdíleným clusterem MongoDB

  2. Jak Spring Data ví, které úložiště zálohovat, pokud je použito více modulů?

  3. Je špatné používat mongo ObjectId jako ID uživatele?

  4. Získejte hodnotu v odkazu na vyhledávání pomocí MongoDB a Golang