Doubt in the Linql

Asked

Viewed 42 times

0

I have 2 tables: one for product and another with a conversion list. Could I make a single connection to the database without having to go to the bank several times? For example, to each product I have a conversion list, in the query list I picked up the products and the conversion list.

Code

        public List<DTO.Produtos> ListarProdutos()
    {
        var listarProduto = new List<DTO.Produtos>();

        using (var context = new DbContextEmpilhadeiras())
        {
            var lista = context.TB_Produtos.OrderBy(p => p.Descricao).ToList();



            foreach (var item in lista)
            {
                DTO.Produtos objProduto = new DTO.Produtos
                {
                    IDProduto = item.ID_Produto,
                    Descricao = item.Descricao,
                    CodigoInterno = item.CodigoInterno,
                    Localizacao = item.Localizacao,
                    QtdAtualFisico = item.EstoqueAtual.ToString(),
                    TodosCodigosConversao = item.Conversao,
                };


                var listaConversao = context.TB_ProdutoConversao.Where(c => c.IDProduto == item.ID_Produto && c.DtExclusao == null).ToList();
                if (listaConversao != null)
                {
                    foreach (var itemC in listaConversao)
                    {
                        objProduto.TodosCodigosConversao += (itemC.Codigo + " ** ");
                    }
                }



                listarProduto.Add(objProduto);
            }
        }

        return listarProduto;
    }

I tried to make this way the more the conversion list came empty

            var lista = (from p in context.TB_Produtos
                         join io in context.TB_ProdutoConversao on p.ID_Produto equals io.IDProduto
                         select p).OrderBy(p => p.Descricao).ToList();

i wanted to go once together in the bank and get all the conversion lists that belong to the product and not to each foreach because the application became slow

thank you

  • You can show us how your database is modelled?

1 answer

0

Have you tried this query with SQL? If you can do it with SQL you can certainly do it with Linq too. Another point is to use the relationship of the table by the Entity framework.

  • I don’t know how to do this relationship

Browser other questions tagged

You are not signed in. Login or sign up in order to post.