如何根据自定义部分中的值对内容进行排序?

How to sort content based on values in custom part?

我创建了一个 PersonPart 并将其附加到我的 Employee 类型。它包含名字和姓氏并实现了 ITitleAspect,这样当我创建一堆 Employees 时,他们不会在内容列表中全部显示为 "Employee"。现在我想创建一个投影,显示所有员工按姓氏字母顺序排序。

我怎样才能做到这一点?有没有我可以实现的接口来使 FirstNameLastName 可用作排序标准?

public class PersonPart : ContentPart<PersonPartRecord>, ITitleAspect
{
    [Required]
    [DisplayName("First name")]
    public string FirstName
    {
        get { return Retrieve(r => r.FirstName); }
        set { Store(r => r.FirstName, value); }
    }

    [Required]
    [DisplayName("Last name")]
    public string LastName
    {
        get { return Retrieve(r => r.LastName); }
        set { Store(r => r.LastName, value); }
    }

    public string Title
    {
        get { return LastName + " " + FirstName; }
    }
}

要在 Orchard 中添加新绑定以用于自定义查询,您必须按以下方式添加这些绑定:

  1. 您应该转到 Bindings 页面如下:

然后按 Add a New Binding 按钮。

  1. Add a Binding 页面中,您将看到所有记录属性(如果它没有 ContentPartRecord,它将不包括您的 ContentPart 属性),您可以添加新的对他们的约束力:

在这里,您可以select要为其添加绑定的属性。

  1. 然后,您可以自由输入 Display 文本和 Description 用于您的 属性 绑定:

  1. 现在,如果您转到查询编辑页面,并尝试为其添加新过滤器,您将在那里看到新的绑定(请注意,您在上一步中输入的显示名称在这里非常重要描述您的绑定对其他人来说非常清楚):

  1. 最后,您将在 Edit Query 页面中看到新创建的绑定: