LINQ のヘルプが必要です。これが私のシナリオです。名前、ID、給与、Primary_Emp、Year などの従業員の詳細を格納するための 2 つのテーブルがあります。ユーザーは、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 でも同じ条件を適用したかったのです。注:- ユーザーには、DDL から選択するEmpID
かEmpName
、テキスト ボックスに値を入力するかの 2 つのオプションがあります (フリー テキスト)
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 を渡す場合は、名前を考慮する必要はなく、その逆も同様です。
linq での JOIN は必須です。