实体框架通过自我订单获取具有子集合的实体

时间:2014-10-03 07:03:12

标签: c# linq entity-framework

我有一个实体(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(

2 个答案:

答案 0 :(得分:1)

根据SystemUnit对象包含的角色。如果SystemUnit对象具有由desc排序的Id,那么这样的角色不能是decby dec。它们将根据SystemUnit对象

进行检索

答案 1 :(得分:0)

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

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