C# 在MongoDB序列化期间如何忽略类?

C# 在MongoDB序列化期间如何忽略类?,c#,mongodb,inheritance,serialization,discriminator,C#,Mongodb,Inheritance,Serialization,Discriminator,在我的模型中,我有两个类: class A { int PropertyA { get; set; } } class B : A { int PropertyB { get; set; } } 在我的应用程序中,我需要将B实例化为A,如果对象是B类型,则使用PropertyB。进入Db我不需要这个,而且我只需要存储A的成员。如果我设置为忽略B的属性,驱动程序在任何情况下都会添加一个鉴别器,因为实际类型与声明的类型不同,我不想存储它。 在MongoDb的驱动程序中,有没有办法说

在我的模型中,我有两个类:

class A
{
    int PropertyA { get; set; }
}
class B : A
{
    int PropertyB { get; set; }
}
在我的应用程序中,我需要将B实例化为A,如果对象是B类型,则使用PropertyB。进入Db我不需要这个,而且我只需要存储A的成员。如果我设置为忽略B的属性,驱动程序在任何情况下都会添加一个鉴别器,因为实际类型与声明的类型不同,我不想存储它。
在MongoDb的驱动程序中,有没有办法说从序列化中忽略B类?

我不知道如何做到这一点,但听起来您的模型好像有问题。一般来说,序列化应该重新创建原始状态,向下转换对象肯定不是相同的状态。我建议您在应用程序代码中处理这个问题,例如,使用一个只包含希望存储在数据库中的信息的类,手动或使用AutoMapper之类的东西进行映射。我需要B类和一个对象一起存储一些业务逻辑数据,将这些信息隐藏到其他代码中,它仅将对象用作实例。另一个解决方案是创建字典,但这不是一个真正干净的方法。当我重新加载A时,我不需要B的信息。Automapper可能是一个解决方案!