Sie können den .NET-Zeichenfolgentyp anstelle von ObjectId verwenden. Sie müssen ihn nur mit BsonRepresentation dekorieren. Wenn Sie BsonDateTime verwenden, haben Sie das gleiche Konvertierungsproblem. Dies ist eine Domänenklasse in meinem Projekt, die diese Dekorateure verwendet.
public class DocumentMetadata
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Name { get; set; }
public string FullName { get; set; }
[BsonDateTimeOptions(Kind = DateTimeKind.Utc)]
public DateTime DownloadTime { get; set; }
}