Vous pouvez utiliser le type de chaîne .NET au lieu d'ObjectId, il vous suffit de le décorer avec BsonRepresentation. Si vous utilisez BsonDateTime, vous aurez le même problème de conversion. Il s'agit d'une classe de domaine dans mon projet qui utilise ces décorateurs.
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; }
}