排序嵌套ID属性



假设我们有一个像这样的文档

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();

发送的请求是

/indexes/events?&amp; pageize = 10&amp; sort=__document_id&amp; sorthint -__ document_id =字符串

这是设计还是错误?

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

这不是错误。__document_id是包含文档ID的特殊字段。无论您是否拥有.ID属性,都在那里。

编辑

我误解了你的问题。这确实是一个错误。我建议您将一个简单的复制案例发送到Raven论坛,并让他们知道您正在使用的Ravendb版本。

最新更新