2012-09-20 56 views
0

我在MongoDB中有一個集合,我嘗試使用C#驅動程序「FindAndModify」。 該集合包含類型的基類和它的派生歸類如下:MongoDB BsonDocument Down-Casting

[BsonDiscriminator(RootClass = true)] 
    public class Father 
    { 
     public Guid Id { get; private set; } 
    } 

    public class Son : Father 
    { 
     public string SomeProperty { get; private set; } 
    } 

當我試圖將BsonDocument投給我的基類中,FindAndModify,其結果爲「兒子」後:

Father modifiedDocument = result.GetModifiedDocumentAs<Father>(); 

我得到以下異常:

System.IO.FileFormatException:元素 'SomeProperty' 不匹配 類法特赫的任何字段或屬性呃。

任何想法爲什麼? - 我不能在這裏表演?

謝謝, Nir。

回答

0

我能夠通過在加載時註冊「兒子」類型的類映射來解決此問題。這裏是對我使用的代碼的參考:

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

希望這可以幫助別人。

乾杯, Nir。