La risposta alla tua domanda è "sì, ma...".
è possibile avere un membro chiamato Id che non mappato all'elemento _id. Ad esempio:
public class X {
[BsonId]
public ObjectId MyId;
}
public class Y : X {
public string Id;
}
Tuttavia, in una gerarchia di classi il membro _id deve essere alla radice della gerarchia (in altre parole, tutti i membri della gerarchia devono essere d'accordo sull'utilizzo dello stesso _id).