C#MongoDB为派生类设置了不同的Id表示

C#MongoDB为派生类设置了不同的Id表示,c#,mongodb,C#,Mongodb,可以将继承Id字段的表示形式从BsonType.ObjectId更改为BsonType.String public class BaseClass { public string Id { get; set; } } public class MyClass : BaseClass { } 我尝试过这种方法,但不起作用 BsonClassMap.RegisterClassMap<BaseClass>(cm => { cm.AutoMap(); va

可以将继承Id字段的表示形式从BsonType.ObjectId更改为BsonType.String

public class BaseClass
{
    public string Id { get; set; }
}

public class MyClass : BaseClass
{
} 
我尝试过这种方法,但不起作用

BsonClassMap.RegisterClassMap<BaseClass>(cm =>
{
    cm.AutoMap();
    var id = cm.GetMemberMap(c => c.Id);
    cm.SetIdMember(id);
    cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});

BsonClassMap.RegisterClassMap<MyClass>(cm =>
{
    cm.AutoMap();
    var idMember = cm.IdMemberMap; // idMember is null
    idMember.SetRepresentation(BsonType.String);
});
BsonClassMap.RegisterClassMap(cm=>
{
cm.AutoMap();
var id=cm.GetMemberMap(c=>c.id);
cm.SetId成员(id);
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
BsonClassMap.RegisterClassMap(cm=>
{
cm.AutoMap();
var idMember=cm.IdMemberMap;//idMember为空
SetRepresentation(BsonType.String);
});

非常感谢。

不,这是不可能的。派生类不能更改其基类中字段的表示形式。派生类当然可以完全控制其字段的序列化方式