LINQ에서 도움이 필요합니다. 여기에 내 시나리오가있다. 이름, ID, 급여, Primary_Emp 및 Year와 같은 직원 세부 정보를 저장하기위한 두 개의 테이블이 있습니다. 사용자는 DDL에서 이름 또는 ID를 선택하고 입력 값을 SP로 전달할 수 있습니다. SQL Server는 주어진 입력을 기반으로 데이터를 반환합니다.LINQ에서 where 절을 동적으로 형성
tbl_Employee
EmpID EmpName Salary Primary_Emp
1 xxx 10000 Yes
2 yyy 20000 Yes
3 zzz 30000 Yes
tbl_Year
EmpID [Year]
1 2010
2 2011
3 2011
다음은 내 SQLQuery입니다. LINQ에서 동일한 조건을 적용하려고했습니다. 참고 : - 사용자가 텍스트 상자 (무료 텍스트)에서 DDL 입력 값에서 EmpID
또는 EmpName
을 선택하는 두 가지 옵션
Input Parameters:
Name varchar(100)
EmpID varchar(100)
select distinct e.EmpID from
tbl_employee e
inner join
tbl_Year y
on e.EmpID = y.EmpID
where E.Primary_Emp = 'Yes'
**AND e.EmpName = (SELECT CASE WHEN @Key = 'Name' THEN @Value ELSE e.Empname END)
AND e.EmpID = (SELECT CASE WHEN @Key = 'EmpID' THEN @Value ELSE e.EmpID END)**
을 가지고 질문 : LINQ의 동적 절을 형성하는 방법에 대해 설명합니다. 여기서 문제는 LHS도 역동적이라는 것입니다. 사용자가 EmpID를 통과하면 이름과 그 반대를 고려하지 않아야합니다.
linq의 JOIN은 필수 항목입니다. 그냥 당신이 조건에 적용 할 별도의 및 필터 식의 경우