sql >> Databasteknik >  >> NoSQL >> MongoDB

C# MongoDB:Hur mappar man ett domänobjekt korrekt?

Det är möjligt att serialisera/avserialisera klasser där egenskaperna är skrivskyddade. Om du försöker hålla dina domänobjekt beständighet okunniga, vill du inte använda BsonAttributes för att styra serialiseringen, och som du påpekade kräver AutoMapping läs/skrivegenskaper, så du måste registrera klasskartorna själv. Till exempel klassen:

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

Kan mappas med följande initialiseringskod:

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

Observera att de privata fälten inte kan vara skrivskyddade. Observera också att avserialisering går förbi din konstruktor och direkt initierar de privata fälten (.NET-serialisering fungerar också på detta sätt).

Här är ett komplett exempelprogram som testar detta:

http://www.pastie.org/1822994



  1. ta bort _id från mongodb resultat java

  2. Gör grundläggande HTML-vy?

  3. Hur tar man bort min-värde i mongodb för grupp?

  4. Mongoose expanderar standardvalidering