实体框架获取具有自排序的子集合的实体

本文关键字:实体 子集合 排序 框架 获取 | 更新日期: 2023-09-27 18:25:28

我有一个实体(SystemUnit),它包含子实体(角色)的集合:

public partial class SystemUnit
{
    public SystemUnit()
    {
        this.Roles = new HashSet<Role>();
        this.Childs = new HashSet<SystemUnit>();
    }
    public int Id { get; set; }
    public Nullable<int> ParentId { get; set; }
    public int SystemUnitTypeId { get; set; }
    public string Name { get; set; }
    public virtual SystemUnitType SystemUnitType { get; set; }
    public virtual ICollection<Role> Roles { get; set; }
    public virtual ICollection<SystemUnit> Childs { get; set; }
    public virtual SystemUnit Parent { get; set; }
}

我需要使用实体框架来获取所有系统单元,按Id Asc和包含的角色排序,按Id desc.Newbee在linq中排序(

实体框架获取具有自排序的子集合的实体

根据SystemUnit对象包含的角色。如果SystemUnit对象的Id是按desc排序的,那么这样角色就不能按dec排序。他们将根据SystemUnit对象

进行检索

为此,您首先需要一个上下文实体,然后将您的系统单元实体添加为其中的对象。例如:

public class entityContext{
    public DbSet<SystemUnit> SystemUnit { get; set;}
}

然后在需要调用实体的方法中,写下:

entityContext ec = new entityContext();
 List<SystemUnit> systemUnit = (from su in ec.SystemUnit .Include("Roles") orderby su.Id Asc).ToList();