2013-02-27 89 views
0

我有以下查询,我想过滤掉删除某些代码。这是一个工资计算程序,并根据运行它的用户,它应该只允许在一个用户列表员工的缺失:从上面的查询Linq To SQL其中条件与IEnumerable

IEnumerable<int> employeeIdList; <----contains employee Ids under a certain user 

var processDataTemps = tempProcessDataService.GetAllProcessDataTemps(); 

样品结果

Code Name U_Employee_ID U_month U_PD_code U_Amount U_Balance U_taxyear  
0  0  1    2  SYS037 24308.500000 0.000000 2013 
1  1  1    2  SYS014 50470.000000 0.000000 2013 
10 10 8    2  SYS024 7541.000000 0.000000 2013 
13 13 7    2  SYS037 7541.000000 0.000000 2013 
17 17 7    2  SYS024 7541.000000 0.000000 2013 

我的问题是怎么做的我修改processDataTemps查询以仅返回IEnumerable employeeIdList中包含的员工ID的代码(Code列)?

即,这样,如果employeeIdList只包含1和7,修改后的processDataTemps查询应返回Code值0,1和13和17 (使用SQL Server 2008)

回答

1

假设你使用的是C#:

var processDataTemps = tempProcessDataService.GetAllProcessDataTemps() 
              .Where(d => employeeIdList.Contains(d.U_Employee_ID)) 
              .Select(d => d.Code); 
+0

感谢RobJohnson。 – 2013-02-27 13:03:54