Lång historia kort:allt handlar om konventioner. MongoDB .NET-drivrutinen avslöjar den statiska klassen
Vilket betyder att
Hur fixar man det?
Du kan bli av med standardkonventioner
Men automatiskt kommer du att släppa alla andra drivrutiner, vilket är ganska riskabelt. Alternativt kan du skapa en falsk egendom som alltid kommer att vara tom:
eller så kan du bara använda
Så konventionen kommer att ställa in ditt ConventionRegistry
som låter dig registrera dina egna konventioner (mer här
). Dessutom finns det två "inbyggda" konventioner __defaults__
och __attributes__
. Gräver djupare (drivrutin id
medlemmar kommer att betraktas som vanliga BSON _id-element.ConventionRegistry.Remove("__defaults__");
public class SubServiceDef
{
[BsonElement("id")]
public int Id { get; set; }
[BsonId]
public ObjectId FakeId { get; set; }
}
BsonNoId
attribut som[BsonNoId]
public class SubServiceDef
{
[BsonElement("id")]
public int Id { get; set; }
}
id
som IdMember i klasskartan men under efterbearbetning kommer detta attribut att tvinga IdMember att vara null och din klass kommer att deserialiseras framgångsrikt