OrderBy嵌入式文档
问题描述:
我试图通过嵌入式文档中的值来排序我的结果。OrderBy嵌入式文档
考虑的模型,如:
public class Car
{
public Guid ID { get; set; }
public string Name { get; set; }
public IEnumerable<Passenger> Passengers { get; set; }
}
public class Passenger
{
public Guid ID { get; set; }
public virtual string Name { get; set; }
public virtual int Age { get; set; }
}
我试图通过Passenger.Age查询我Car
集合,为了
我的查询看起来是这样的:
var results = (from car in _db.GetCollection<Car>("car").AsEnumerable()
from passenger in car.Passengers
where car.Name == "Ford"
orderby passenger.Age).ToList();
有了这个,我得到以下例外:
不支持SelectMany查询运算符。
这可以理解为C#mongo驱动程序的限制。
是否有解决方法?
失败的是,我怎么能在我的.ToList()之后命令它们?
答
你或许可以重新写这与AsQueryable()
从ToList()
得到IEnumerable
收集回来,从中你可以用任何LINQ再进一步查询您要使用,而不仅仅是由MongoCollection
直接支持的操作:
在这里你可以找到directly supported LINQ operations for the MongoDb C# driver。
我是否正确理解你,如果我说你试图从结果中获得Car对象和Passanger对象? – 2012-07-11 14:42:31
我相信他试图按年龄列出所有福特乘客的名单。 – 2012-07-11 14:57:00