¿Cómo traduciría la siguiente consulta SQL a una consulta LINQ comparable?Cómo escribir una consulta SQL "No en" en LINQ?
select * from Dept
where Id not in (
Select Id
from Employee
where Salary > 100);
¿Cómo traduciría la siguiente consulta SQL a una consulta LINQ comparable?Cómo escribir una consulta SQL "No en" en LINQ?
select * from Dept
where Id not in (
Select Id
from Employee
where Salary > 100);
intentar algo como esto:
var result = from d in Dept
let expensiveEmployeeIds = (from e in Employee.Employees
where e.Salary > 100
select e.Id)
where !expensiveEmployeeIds.Contains(d.Id)
select d;
¿Qué tal esto?
var lowPaidEmps = from d in db.Dept
join e in db.Employees on d.Id equals e.Id
where e.Salary <= 100
select d;
Eso no es lógicamente equivalente. Imagine un departamento sin empleados (la consulta original lo devuelve, esta consulta no). –
Me alegra que hayas conseguido lo que estás buscando. – Rob
Además, LINQPad es una herramienta útil para ayudar a escribir y probar consultas LINQ – CaffGeek
en este caso también se podría utilizar negación lógica: donde Salario <= 100 –
@ Chad..ya tratarán parece útil @ CrazyJugglerDrummer bien, estoy tratando de hacer algo más complejo ... pero en este caso sería:) ... – Vishal