public async Task <List <List <Models.TbEbook> > > EbooksCliente(int idLogin) { int idCliente = loginDB.IdCliente(idLogin); List <List <Models.TbEbook> > ebooksFinal = new List <List <Models.TbEbook> >(); Models.TbEstante estante = await ctx.TbEstante.FirstOrDefaultAsync(x => x.IdCliente == idCliente); List <Models.TbPrateleira> prateleiras = ctx.TbPrateleira.Where(x => x.IdEstante == estante.IdEstante).ToList(); foreach (Models.TbPrateleira prateleira in prateleiras) { List <Models.TbEbook> ebooks = new List <Models.TbEbook>(); List <Models.TbPrateleiraItem> prateleiraItems = ctx.TbPrateleiraItem.Where(x => x.IdPrateleira == prateleira.IdPrateleira) .ToList(); foreach (Models.TbPrateleiraItem prateleiraItem in prateleiraItems) { ebooks.Add( await ctx.TbEbook.Include(x => x.IdAutorNavigation) .FirstOrDefaultAsync(x => x.IdEbook == prateleiraItem.IdEbook) ); } ebooksFinal.Add(ebooks); } return(ebooksFinal); }