如何在 Linq2DB 中对 child 列表进行排序?

How to sort a child list in Linq2DB?

我有一个 table,其中每一行都拥有来自另一个 table 的一组行,使用 LinqToDB.Mapping 类。

[Table(Name = "SECTORS")]
public partial class Sector
{
    [Column(Name="ID"), NotNull, PrimaryKey] 
    public int Id { get; set; }

    [Column(Name = "NAME"), NotNull] 
    public string Name { get; set; }

    [Association(ThisKey = nameof(Id), OtherKey = nameof(SubSector.SectorId))]
    public List<SubSector> Subsectors { get; set; }
}

[Table(Name = "SUBSECTORS")]
public partial class SubSector : Sector
{
    [Column(Name = "SECTORID"), NotNull]
    public int SectorId { get; set; }
}

我已经弄明白如何在加载 parent objects 列表时使用关联 header 自动加载所有 child objects .

var query = from s in Sectors.LoadWith(s => s.Subsectors)
                        orderby s.Name
                        select s;
            

如何设置 Subsectors 列表的排序顺序?

我可以稍后排序,但是由数据库完成排序就更好了。

似乎没有关联属性的 属性,添加到 orderby 行将对 parent objects 进行排序(如果它甚至起作用了)。

LoadWith 在其主体中支持一组 LINQ 运算符。所以只需添加 OrderBy.

var query = 
    from s in Sectors.LoadWith(s => s.Subsectors.OrderBy(x => x.SectorId))
    orderby s.Name
    select s;