使用异步调用一个树结构
public async Task<List<SelectDto>> SelectDeps(int? id)
{
var results = new List<SelectDto>();
// var deps = db.Department.Where(o=>o.IsDel!=true).Where(o => o.Pid == id || (id == null && o.Pid == 0)).Include(x => x.Children).AsAsyncEnumerable();
// await foreach (var x in deps)
// {
// var dto = new SelectDto()
// {
// title = x.DepName,
// label = x.DepName,
// key = x.Id,
// children = await SelectDeps(x.Id)
// };
// results.Add(dto);
// };
var deps =await db.Department.Where(o=>o.IsDel!=true).Where(o => o.Pid == id || (id == null && o.Pid == 0)).Include(x => x.Children).ToListAsync();
for (int i = 0; i < deps.Count; i++){
var dto = new SelectDto()
{
title = deps[i].DepName,
label = deps[i].DepName,
key = deps[i].Id,
children = await SelectDeps( deps[i].Id)
};
results.Add(dto);
};
return results;
}
原来无论使用await foreach 或者 for 都会等待执行然后返回数据
直接调用接口没问题。浏览器get方法。
但是前端调用进入调试总是后台返回空值(使用angular)