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

时间:2014-07-14 14:55:52

标签: 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();
    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);
});

非常感谢。

1 个答案:

答案 0 :(得分:0)

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