Lang historie kort:det hele handler om konventioner. MongoDB .NET-driver afslører statisk klasse
Hvilket betyder, at
Hvordan løser man det?
Du kan slippe af med standardkonventioner
Men automatisk vil du droppe alle de andre driverkonventioner, hvilket er ret risikabelt. Alternativt kan du oprette en falsk ejendom, som altid vil være tom:
eller du kan bare bruge
Så konventionen vil indstille dit ConventionRegistry
som giver dig mulighed for at registrere dine egne konventioner (mere her
). Derudover er der to "indbyggede" konventioner __defaults__
og __attributes__
. Graver dybere (driver id
medlemmer vil blive betragtet som almindelige BSON _id-elementer.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 klassekortet, men under efterbehandling vil denne attribut tvinge IdMember til at være nul, og din klasse vil blive deserialiseret med succes