簡體   English   中英

如何對 Linq2DB 中的子列表進行排序?

[英]How to sort a child list in Linq2DB?

我有一個表,其中每一行都擁有來自另一個表的一組行,使用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; }
}

我已經研究出如何在加載父對象列表時使用 Association header 自動加載所有子對象。

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

如何設置子部門列表的Subsectors順序?

我可以稍后對其進行排序,但最好由數據庫完成排序。

似乎沒有 Association 屬性的屬性,並且添加到orderby行將對父對象進行排序(如果它甚至有效)。

LoadWith在其主體中支持一組 LINQ 運算符。 所以只需添加OrderBy

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM