2014-07-14 61 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

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