MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

IdMemberMap ist null, wenn Representation Serialization Options verwendet wird

Dies grenzt an einen Fehler im C#-Treiber. Es stellt sich heraus, dass IdMemberMap nicht definiert ist, bis die Klassenzuordnung "eingefroren" ist, aus Gründen, die mit Klassenhierarchien zu tun haben, in denen die ID möglicherweise tatsächlich in einer Basisklasse definiert ist. Eine Möglichkeit, dies zu umgehen, ist:

BsonClassMap.RegisterClassMap<Person>(cm => {
    cm.AutoMap();
    cm.Freeze();
    cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});

Eine andere Möglichkeit, dies zu umgehen, besteht darin, GetMemberMap anstelle von IdMemberMap zu verwenden:

BsonClassMap.RegisterClassMap<Person>(cm => {
    cm.AutoMap();
    cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});