如何在RavenDB中对子集合进行排序和查询?

时间:2019-08-08 23:18:30

标签: c# ravendb

感谢您的帮助和耐心。 我仍在学习RavenDB,所以我寻求一些看似简单的帮助,但经过多次尝试和广泛研究,它使我不寒而栗。 所以决定在这里寻求帮助...

给出模型:

public class Travel
{
    public string Id { get; set; }
    public string Destination { get; set; }
    public string DriverId { get; set; }
    public Driver Driver { get; set; }
{

public class Driver
{
    public string Id { get; set; }
    public string Name { get; set; }
{

如何按驱动程序名称排序和过滤?

奇怪的是,linq不能按预期工作:

session.Query<Travel>().Include(travel => travel.DriverId)
    .OrderBy(travel => travel.Driver.Name);

上面的行发出以下RQL:

from Travels order by Driver.Name include DriverId

这似乎是正确的,但是由于某种原因,无论是使用Linq还是RQL,旅行清单都不会按驾驶员姓名排序。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

我认为您需要将include语句更改为include(travel => travel.Driver)。

答案 1 :(得分:0)

您是否尝试过添加ToList?我能够成功获取按驾驶员姓名排序的旅行清单。

session.Query<Travel>().Include(travel => travel.DriverId)
       .OrderBy(travel => travel.Driver.Name)
       .ToList();