.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实现无限递归查询的主要内容,如果未能解决你的问题,请参考以下文章