我需要 LINQ 的帮助。这是我的场景。我有两个表用于存储员工详细信息,例如姓名、ID、工资、Primary_Emp 和年份。用户可以从 DDL 中选择名称或 ID,并将输入值传递给 SP。SQL Server 将根据给定的输入返回数据。
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 中应用相同的条件。注意:- 用户有两个选项可以选择EmpID
或EmpName
从 DDL 中选择并在文本框中输入值(自由文本)
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中形成动态where子句。这里的问题是 LHS 也是动态的。如果用户传递 EmpID,则不应考虑 Name,反之亦然。
在 linq 中加入是强制性的!