linq와 함께이 쿼리를 어떻게 사용할 수 있습니까? EmployeeID는 다른 테이블입니다. 데시벨은 LINQ 데이터 컨텍스트를입니다linq을 사용하여 선택
select *
from Employees where EmployeeID
in (select ID from EmployeeIDs where ID between 3 and 7)
linq와 함께이 쿼리를 어떻게 사용할 수 있습니까? EmployeeID는 다른 테이블입니다. 데시벨은 LINQ 데이터 컨텍스트를입니다linq을 사용하여 선택
select *
from Employees where EmployeeID
in (select ID from EmployeeIDs where ID between 3 and 7)
var result= (
from e in db.Employees
where
(
from eId in db.EmployeeIDs
where eId.ID>=3 && eId.ID<=7
select eId.ID
).Contains(e.EmployeeID)
select e
);
또는 당신은 또한 이런 식으로 작업을 수행 할 수 있습니다
var result= db.Employees.Where(a=>a.EmployeeID>=3 && a.EmployeeID<=7);
또는 당신은 또한 이런 식으로 작업을 수행 할 수 있습니다
var result= (
from e in db.Employees
where
(
from eId in db.EmployeeIDs
where eId.ID>=3 && eId.ID<=7
&& e.EmployeeID==eId.ID
select eId.ID
).Any()
select e
);
심지어 SQL에서도 중첩 된 문에서은 중복됩니다. 당신이 크기는 SQL Between 3 AND 7
In
SELECT *
FROM Employees
WHERE EmployeeID Between 3 and 7
를 작성할 수
는그래서 당신은 당신의 EF의 비춰볼 다음과 같이 쓸 수 Column >= 3 and Column <= 7
단지 문법 설탕입니다.
var results = from e in context.Employees
where EmployeeId >= 3 && EmployeeId <= 7
select e;
예를 들어, 직원 # 4 *가 EmployeeIDs *에 행이 없으면 그는 원래 쿼리에 나타나지 않지만 그는 자신의 것으로 나타납니다. –
는 조인을 원하는 것 같은데 :
당신이 정말로 두 테이블이 필요 경우의var query = from emp in employees
join empId in employeeIds.Where(x => x.ID >= 3 && x.Id <= 7)
on emp.EmployeeID equals empID
select emp;
. 반면에, 당신은 항상 employee.ID
에 대한 employeeIds
에 유효한 ID가있을 것이라고 가정 할 수 있다면 당신은 사용할 수 있습니다
var query = employees.Where(x => x.EmployeeID >= 3 && x.EmployeeID <= 7);
; 이것은 또한`<` & `>`수표 (읽기 쉽도록 편집) 중첩 선택하지 않고 꽤 제정신 똑바로 앞으로 SQL
SELECT *
FROM Employees AS emp
INNER JOIN EmployeeIDs AS eid ON emp.EmployeeID = eid.ID
WHERE (emp.EmployeeID >= 3) AND (emp.EmployeeID <= 7)
작은 오타가 발생합니다
은 ... –
그래 난 그냥 고정. 죄송합니다. .. – Arion
두 번째 것은 괜찮은 –