2014-07-14 33 views
0

可以将继承的Id字段的表示从更改为BsonType.ObjectIdBsonType.StringC#MongoDB为派生类设置不同的Id表示

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); 
}); 

非常感谢。

回答

0

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