ObjectIdの代わりに.NET文字列タイプを使用できます。BsonRepresentationで装飾する必要があります。 BsonDateTimeを使用する場合、同じ変換の問題が発生します。これは、これらのデコレータを使用する私のプロジェクトのドメインクラスです。
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; }
}