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