sql >> Database >  >> NoSQL >> MongoDB

C# MongoDB:hoe een domeinobject correct toewijzen?

Het is mogelijk om klassen te serialiseren/deserialiseren waarvan de eigenschappen alleen-lezen zijn. Als u probeert de persistentie van uw domeinobjecten onwetend te houden, wilt u BsonAttributes niet gebruiken om de serialisatie te begeleiden, en zoals u aangaf, vereist AutoMapping lees-/schrijfeigenschappen, dus u zou de klassenkaarten zelf moeten registreren. Bijvoorbeeld de klas:

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 worden toegewezen met behulp van de volgende initialisatiecode:

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

Houd er rekening mee dat de privévelden niet alleen-lezen kunnen zijn. Merk ook op dat deserialisatie uw constructor omzeilt en de privévelden direct initialiseert (.NET-serialisatie werkt ook op deze manier).

Hier is een volledig voorbeeldprogramma dat dit test:

http://www.pastie.org/1822994



  1. Hoe gebruik je sql zoals in PyMongo?

  2. TypeError:kan eigenschap 'items' van null niet lezen in monogdb met nodejs

  3. Haal gegevens op uit 2 collecties in mongodb in één zoekopdracht

  4. Hoe bestaande documenten te vervangen bij het importeren van een bestand in MongoDB