MongoDB C#驱动程序序列化查找结果

时间:2016-06-17 16:30:12

标签: c# mongodb serialization aggregation-framework

我正在尝试使用'lookup'聚合填充对象上的属性。当我使用MongoChef时,我可以按预期执行我的聚合。尝试反序列化结果时,我的C#代码抛出异常。

我在Mongo有雇主和工作收集。我在C#中有相应的Employer和Job类。雇主被定义为具有List类型的CurrentJobs属性。

集合和对象共享一个EmployerId字段。我的C#查询(简化):

      var collection = mongoDatabase.GetCollection<Employer>("Employer");
      collection.Aggregate().Lookup("Job", "EmployerId", "EmployerId", "CurrentJobs");
      employers = collection.Find(filter).ToListAsync().Result;

我的对象(简化):

public class Employer
{
  public List<Job> CurrentJobs { get; set; }
}

public class Job
{
    //various fields
}

我的例外:

  

反序列化CurrentJobs属性时发生错误   class My.Namespace.Employer:无法反序列化'List'   BsonType'文件'。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

这是我的错。我在MongoDB中为CurrentJobs集合分配了'Object'的数据类型。我将它移动到'Array',我的反序列化错误消失了。

我是个白痴......