MongoDB BsonDocument Down-Casting

时间:2012-09-20 17:07:27

标签: c# mongodb downcast

我在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'不匹配   父亲的任何领域或财产。

知道为什么吗? - 我不是在这里进行演员表演吗?

谢谢, 尼尔。

1 个答案:

答案 0 :(得分:0)

我能够通过注册&#34; Son&#34;的类地图来解决这个问题。输入时输入。这是对我使用的代码的引用:

    if (!BsonClassMap.IsClassMapRegistered(typeof(T)))
    {
        BsonClassMap.RegisterClassMap<T>
        (cm =>
        {
            cm.AutoMap();
        });
    } 

希望这有助于某人。

干杯, 尼尔。