我有以下方法,我通过root父级在json中获取树状视图,但是它花费的时间太长,我如何将其更改为任务内的内容,我尝试了很多事情,但始终会遇到类似InvalidOperationException的异常:已经与此命令关联的打开的DataReader,必须先关闭。
public JsonResult GetTreeContasContabeis()
{
var rootItens = new List<ContaContabil>();
var allCounts = UnitOfWork.ContasContabeis.All();
rootItens = allCounts.Where(x => x.ContaContabilPai.Id == null).ToList();
var retorno = new List<TreeViewRetorno>();
foreach (var item in rootItens)
retorno.Add(GetItemContaContabil(item));
retorno.OrderBy(p => p.text);
return Json(retorno);
}
private TreeViewRetorno GetItemContaContabil(ContaContabil contaContabil)
{
var item = new TreeViewRetorno();
item.id = contaContabil.Id;
item.text = $"{contaContabil.NumeroConta} - {contaContabil.DescricaoConta}";
item.hasChildren = (contaContabil.ContasFilhas != null && contaContabil.ContasFilhas.Any());
item.isTipo = contaContabil.TipoClassificacaoContaContabil;
item.items = new List<TreeViewRetorno>();
if (item.hasChildren == true)
{
foreach (var filha in contaContabil.ContasFilhas)
item.items.Add(GetItemContaContabil(filha));
}
return item;
}
public class TreeViewRetorno
{
public Guid? id { get; set; }
public string text { get; set; }
public bool hasChildren {get;set;}
public TipoClassificacaoContaContabil isTipo { get; set; }
public List<TreeViewRetorno> items { get; set; }
}