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