More particulary, there is a class
class X {
....
string Id { get; set; }
}
class Y : X {
ObjectId MyId { get; set; }
}
The answer to your question is "yes, but...".
It is possible to have a member called Id which is not mapped to the _id element. For example:
public class X {
[BsonId]
public ObjectId MyId;
}
public class Y : X {
public string Id;
}
However, in a class hierarchy the _id member must be at the root of the hierarchy (in other words, all members of the hierarchy must agree on using the same _id).