我如何在C#

时间:2018-06-26 14:44:40

标签: c# .net task

我有以下方法,我通过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; }
    }

0 个答案:

没有答案