Diferencia entre decorar una propiedad en C # con BsonRepresentation (BsonType.ObjectId) vs BsonId vs ObjectId
Soy nuevo en mongodb y me gusta lo fácil que es no preocuparse por las cosas del esquema, tengo una pregunta, supongamos que desea una propiedad Id en mongo y mongo usesObjectId
para denotar Id de propiedad, hasta ahora veo que puede tener o decorar un Id de la siguiente manera,
public ObjectId Id {get; set;}
//or
[BsonId]
public string Id {get; set;}
//or
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id {get; set;}
¿Alguien puede explicarme por qué la mayoría de la gente elige el último tipo, qué está pasando y cómo ayuda la flexibilidad? ¿Gracias?