RegisterClassMap不工作C#驱动程序mongodb派生类

RegisterClassMap不工作C#驱动程序mongodb派生类,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,各位!! 我刚刚从1.4升级到mongodb c#驱动程序1.9.1。现在,我在尝试从集合中获取文档时出错。集合具有属性“SomeClass”,该属性的类型为“DerivedClass”。因此,DerivedClass是一个3级文档 class CollectionClass { SomeClass SomeClassProperty } class SomeClass { DerivedClass DerivedClassProperty } class BaseClass

各位!! 我刚刚从1.4升级到mongodb c#驱动程序1.9.1。现在,我在尝试从集合中获取文档时出错。集合具有属性“SomeClass”,该属性的类型为“DerivedClass”。因此,DerivedClass是一个3级文档

class CollectionClass
{
    SomeClass SomeClassProperty
}

class SomeClass
{
    DerivedClass DerivedClassProperty
}

class BaseClass
{
   string id;
   float floatValue;
}
class DerivedClass
{
   int intValue;
}
我使用的映射如下:

BsonClassMap.RegisterClassMap<BaseClass>(cm =>
{
    cm.AutoMap();
    cm.MapIdMember(c => c.id);  
    cm.GetMemberMap(c => c.id).SetElementName("id"); 
    cm.GetMemberMap(c => c.floatValue).SetElementName("fv");  
}
BsonClassMap.RegisterClassMap<DerivedClass>(cm =>
{
    cm.AutoMap();
    cm.GetMemberMap(c => c.intValue).SetElementName("iv");
}
BsonClassMap.RegisterClassMap(cm=>
{
cm.AutoMap();
cm.MapIdMember(c=>c.id);
cm.GetMemberMap(c=>c.id).SetElementName(“id”);
cm.GetMemberMap(c=>c.floatValue).SetElementName(“fv”);
}
BsonClassMap.RegisterClassMap(cm=>
{
cm.AutoMap();
cm.GetMemberMap(c=>c.intValue).SetElementName(“iv”);
}
当我使用findOne()请求文档时,我遇到了一个错误:“反序列化类CollectionClass的SomeClass属性时出错:反序列化类SomeClass的DerivedClass属性时出错:元素“id”与类DerivedClass的任何字段或属性都不匹配。”

有人有想法吗?
提前感谢。

我找到了一个解决方案。我找到了一个解决方案。我不明白为什么,但是在幕后(或者如果你称之为“冻结”)之后,id会自动映射到_id。因此,将cm.MapIdMember(c=>c.id);替换为cm.SetIdMember(null);会有所帮助