1
我需要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,則不應考慮名稱,反之亦然。
JOIN在LINQ是強制性的!