递归使用场景 多见于 有上下级关系不止1层得数据 想一层层得查出来 多见于用树状图展示
一:在存数据得时候 考虑
在存数据得时候 用一个字段code 来代表层级 比如4位代表一层 0001 00010001 000100010001 依次类推
那就是需要写个获取编码的方法 来确保关系以及唯一code
/// <summary>
/// 获取编码
/// </summary>
/// <param name="pid"></param>
/// <returns></returns>
private async Task<string> GetCode(string pid)
{
var count = this.Repository.Get().Count(c => c.Pid == pid);
var entity = await this.Repository.FindAsync(pid);
var code = "T";
if (entity != null) code = entity.Code;
count = count + 1;
return $"{code}{count.ToString().PadLeft(4, '0')}";
}
二:取数据的时候考虑
根据层级映射条件 一般是id 与 pid建立关系
这样递归就需要 层层筛选并不能一下找出,需要考虑中间层