Wie würde ich die folgende SQL-Abfrage in eine vergleichbare LINQ-Abfrage übersetzen?Wie schreibe ich eine "Not In" SQL-Abfrage in LINQ?
select * from Dept
where Id not in (
Select Id
from Employee
where Salary > 100);
Wie würde ich die folgende SQL-Abfrage in eine vergleichbare LINQ-Abfrage übersetzen?Wie schreibe ich eine "Not In" SQL-Abfrage in LINQ?
select * from Dept
where Id not in (
Select Id
from Employee
where Salary > 100);
versuchen, etwas wie folgt aus:
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;
Wie wäre das?
var lowPaidEmps = from d in db.Dept
join e in db.Employees on d.Id equals e.Id
where e.Salary <= 100
select d;
Das ist nicht logisch gleichwertig. Stellen Sie sich eine Abteilung ohne Mitarbeiter vor (die ursprüngliche Abfrage gibt sie zurück, diese Abfrage nicht). –
Ich bin froh, dass du hast, was du suchst. – Rob
Auch ist LinqPad ein handliches Werkzeug, schriftlich zu unterstützen und LINQ-Abfragen testen – CaffGeek
in diesem Fall, dass Sie auch logische Negation verwenden: wo Gehalt von <= 100 –
@ Chad..ya werden versuchen, es nützlich scheint @ CrazyJugglerDrummer Nun, ich versuche etwas anderes, etwas Komplexeres zu tun ... ya aber in diesem Fall würde es:) ... – Vishal