Fórum Seleção de Registros - LINQ #1993
19/01/2009
Olá! Gostaria de saber como posso fazer para selecionar os registros de uma tabela que não estão associados a uma tabela ManyToMany utilizando LINQ.
Exemplo: Tenha uma tabela de Função e uma tabela de Usuário e uma outra tabela UsuarioFuncao onde registro as funções liberadas para um usuário. Porém gostaria de selecionar todas as funções que NÃO estão associados para um determinado usuário. Uma query para isso seria assim:
select * from Funcao
where Funcao.IdFuncao not in (select UsuarioFuncao.IdFuncao from UsuarioFuncao where IdUsuario = 1)
Porém gostaria de ter o mesmo resultados utilizando uma expressão LINQ.
Aguardo uma resposta o mais breve possível.
Abraços
Júlio
Nefrodata Sistemas
Posts
Olá Júlio vou postar abaixo um exemplo de como utilizar a cláusula NOT IN no Linq, veja se consegue adaptar no seu código.
SELECT *
FROM dbo.Customers AS t0
WHERE t0.CustomerID NOT IN (
SELECT t1.CustomerID
FROM dbo.Orders AS t1
)
NorthwindDataContext dc = new NorthwindDataContext();
var query =
from c in dc.Customers
where !(from o in dc.Orders
select o.CustomerID)
.Contains(c.CustomerID)
select c;
=======================================
where ! é o detalhe.
=======================================
19/01/2009
Nefrodata Ltda
Fabio funcionou perfeitamente não conhecia essa clausula where ! acho que vai resolver muito mais problemas do que eu imaginava.
Valeu abraços!
Júlio
OBS: tenho algumas dúvidas relacionadas ao Entity Framework posso posta-la nessa seção??
Você pode perguntar sobre o Entity Framework sim, mas será necessário abrir outro chamado.
Abraços