C# 如何使用mongoDB中的查询和属性检索数据?

C# 如何使用mongoDB中的查询和属性检索数据?,c#,mongodb,oop,C#,Mongodb,Oop,我有一些关于如何使用该类并使用它从互联网上获取项目的问题。 (这个问题可能有点混乱,请帮忙指出,我会尽力陈述。) 上面是我想实现的mock函数,可以使用school下的变量并从数据库调用。 但是它没有像我预期的那样工作 我收到错误x.Cambridge,找不到Cambridge。 调用它的术语是什么?如何更改以支持和使用inherit类下的变量 谢谢。您可以使用以下属性[bsonignorextraelements]忽略文档中不可用字段的绑定 [BsonIgnoreExtraElements]

我有一些关于如何使用该类并使用它从互联网上获取项目的问题。 (这个问题可能有点混乱,请帮忙指出,我会尽力陈述。)

上面是我想实现的mock函数,可以使用school下的变量并从数据库调用。 但是它没有像我预期的那样工作

我收到错误
x.Cambridge
,找不到
Cambridge
。 调用它的术语是什么?如何更改以支持和使用inherit类下的变量


谢谢。

您可以使用以下属性
[bsonignorextraelements]
忽略文档中不可用字段的绑定

[BsonIgnoreExtraElements]
public class School : Person
{
     public string Cambridge { get; set; }
}
关于继承,您可能必须使用鉴别器,有关这方面的更多信息可用

下面是一个例子:

[BsonKnownTypes(typeof(School)]
public class Person
{
    public string Name { get; set; }
}
尽管如此,我并不十分喜欢多态类(在你的例子中,你的设计根本不是多态的)。你最好不要那样设计你的文档结构。如果我是你,我会这样做:

public class Person {
    public String Name {get; set;}
    public School School {get; set;}
}

您的
PersonRepository
是什么样子的?如果是这样,那么我可以使用它从我的mongoDB调用?想问更多吗,我的问题标题是否可以?@Ben:是的,这不会影响MongoDB维护的任何内容,它只是一个属性,定义驱动程序忽略额外字段,因为Mongo是一个无SQL数据库,这种情况非常常见和正常。如果你有更多的问题,请随时问我:)如果我想使用这个人,可以吗?因为我当前的功能已经在使用此人。但是我想为剑桥大学再查询一个问题,是否仍然可以使用Person而不是School?@Ben:您必须将此属性
[BsonKnownTypes(typeof(School)]
添加到
Person
类中。好的,稍后将尝试,它是否会影响该Person不需要的其他现有功能?谢谢
public class Person {
    public String Name {get; set;}
    public School School {get; set;}
}