我在MongoDB中有一个集合,我正在尝试使用C#驱动程序“FindAndModify”。 此集合包含基类的类型及其派生类,如下所示:
[BsonDiscriminator(RootClass = true)]
public class Father
{
public Guid Id { get; private set; }
}
public class Son : Father
{
public string SomeProperty { get; private set; }
}
当我试图将BsonDocument强制转换为我的基类时,在FindAndModify之后,结果为“Son”:
Father modifiedDocument = result.GetModifiedDocumentAs<Father>();
我得到以下异常:
System.IO.FileFormatException:元素'SomeProperty'不匹配 父亲的任何领域或财产。
知道为什么吗? - 我不是在这里进行演员表演吗?
谢谢, 尼尔。
答案 0 :(得分:0)
我能够通过注册&#34; Son&#34;的类地图来解决这个问题。输入时输入。这是对我使用的代码的引用:
if (!BsonClassMap.IsClassMapRegistered(typeof(T)))
{
BsonClassMap.RegisterClassMap<T>
(cm =>
{
cm.AutoMap();
});
}
希望这有助于某人。
干杯, 尼尔。