0

我在 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”与父亲类的任何字段或属性都不匹配。

知道为什么吗?- 我不能在这里进行向下投射吗?

谢谢,尼尔。

4

1 回答 1

0

我能够通过在加载时注册“Son”类型的类映射来解决这个问题。这是我正在使用的代码的参考:

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

希望这可以帮助某人。

干杯,尼尔。

于 2012-09-22T08:27:38.037 回答