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?
– Pedro Paulo