.NetCore5实现无限递归查询

Posted Hello World,

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NetCore5实现无限递归查询相关的知识,希望对你有一定的参考价值。

使用.NetCore5 EF来实现无限级树形结构查询,操作很简单,直接查询即可,可以使用FromSqlRaw或者普通的查询都可以。查询结果.ToList(),再过滤掉不符合条件的项目。查询时不要使用AsNoTracking,否则不能生成下级内容。

示例代码:

部门类:

    public partial class Department
    {
        public Department()
        {
            InverseParent = new HashSet<Department>();
        }

        [Key]
        public int ID { get; set; }
        public int? ParentID { get; set; }
        [Required]
        [StringLength(50)]
        [Display(Name ="部门名称")]
        public string DeptName { get; set; }

        [ForeignKey(nameof(ParentID))]
        [InverseProperty(nameof(Department.InverseParent))]
        public virtual Department Parent { get; set; }

        [InverseProperty(nameof(Department.Parent))]
        public virtual ICollection<Department> InverseParent { get; set; }

    }

查询代码:

var depts = _context.Departments.OrderBy(d => d.DeptName).ToList();
return Json(depts.Where(d=>d.ParentID==null));

生成结果:

 

 

以上是关于.NetCore5实现无限递归查询的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer :实现树形结构递归查询(无限极分类)

sqlserver实现树形结构递归查询(无限极分类)

几十万条数据用PHP递归能实现无限级分类吗

php递归无限极分类怎么弄

PHP原生递归实现无限级分类树状展示数据

在graphql中嵌套片段