对嵌套的Id属性进行排序

时间:2017-09-13 10:01:25

标签: ravendb

我们说我们有这样的文件

public class Event
{
    public string Id { get; set; }
    public EntityDescriptor Venue { get; set; }

    // Other properties omitted for simplicity
}

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

像这样的索引

public class Events : AbstractIndexCreationTask<Event>
{
    public Events()
    {
        Map = items => from e in items
                       select new
                       {
                           Venue_Id = e.Venue.Id,
                           Venue_Name = e.Venue.Name
                       };
    }
}

尝试对Event.Venue.Id

进行排序时
session.Query<Event, Events>().Take(10).OrderBy(e => e.Venue.Id).ToArray();

发送的请求是

/索引/活动和安培;的pageSize = 10安培; sort=__document_id&安培; SortHint -__ DOCUMENT_ID =字符串

这是设计还是错误?

PS:OrderBy(e => e.Venue.Name)按预期工作(sort=Venue_Name)。

1 个答案:

答案 0 :(得分:1)

这不是一个错误。 __document_id是包含文档ID的特殊已知字段。无论你是否拥有.Id属性,它都在那里。

修改

我误解了你的问题。这确实是一个错误。我建议您向Raven forum发送一个简单的repro案例,让他们知道您正在使用的RavenDB版本。