Me deparei com uma duvida: Como fazer um Select IN com o Linq?
Seria isso possível? Ou seria esta mais uma das funcionalidades da próxima versão?
Pois bem, fui pesquisar e descobri uma maneira bastante eficiente e na minha visão muito melhor do que aquelas gambiarras feitas em stored procedures. Vejam como é simples:
Para que não restem duvidas, estou falando de fazer assim no SQL:
1: select * from Produto where IdCatecoria in (1,2,3)
E com o Linq e ainda usando o Microsoft Entity Framework ficou assim:
1: var categorias = new int[] { 1, 2, 3 };
2: using (var db = new Model.bdEntities(_connectionString))
3: {
4: var query = from p in db.Produtos
5: where categorias.Contains(p.cod_categoria)
6: select p;
7: var ListaFinal = query.ToList();
8: }
Se você ligar o trace do banco de dados irá ver que o comando sql foi algo assim:
1: SELECT [t0].[IDProduto], [t0].[Descricao], [t0].[Valor], [t0].[cod_categoria]
2: FROM [dbo].[Produtos] AS [t0]
3: WHERE [t0].[cod_categoria] IN (@p0, @p1, @p2)
4:
5:
Gostou? Não gostou? Comenta ai!
Nenhum comentário:
Postar um comentário