Pq o linq cria varios selects ao invez de um?
Ola,
Estou com um problema de performace com o linq...
vejam se esse meu problema é pq eu fiz algo errado OU pq o linq faz isso mesmo.;.
tenho duas tabelas...
uma de Pedido e outra de Usuario, exemplo classico.!
as tabelas se referenciam por FORENKEY!
Bom, acontece que o resultado esta como o esperado, mais vejam minha duvida...
Eis a query:
Pedido MeuPedido = (from pedido in MeuDataContext where pedido.idPedido = idPedido select pedido).Single();
essa query me tras o pedido que desejo E POPULA a propriedade UsuarioPedido (tipo USUARIO) do meu objeto PEDIDO.
Bom, até ai tranquilo, o problema que reporto, esta no LOQ do datacontext.
ele primeiro pesquisa meu pedido na tabela de pedido
SELECT [t0].idPedido, [t0].DataPedido, [t0].idUsuario, ... FROM [banco].[tbPedido] AS [t0]
WHERE [t0].[idPedido] = @p0
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [1]
depois ele busca meu usuário
SELECT [t0].idUsuario, [t0].Nome, [t0].Senha, ... FROM [banco].[tbUsuario] AS [t0]
WHERE [t0].[idUsuario] = @p0
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [1]
bom, eu penso que isso é um ERRO grave de performance...
imagine se eu tenho 1000 pedidos numa pesquisa??
A questão é:
Não seria mais facil ele criar uma UNICA query e nessa query usar INNER JOIN, OU LEFT JOIN???
e se isso existe, como que faço??
é alguma configuração no DataContext?
Agradeço a todos!!
Obrigado
Discussão (1)
Carregando comentários...