Linq To SQL where IEnumerable的条件

时间:2013-02-27 12:34:48

标签: linq sql-server-2008

我有以下查询,我想过滤掉某些代码进行删除。这是一个工资单程序,根据运行它的用户,它应该只允许删除用户列表下的员工:

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列)?

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

1 个答案:

答案 0 :(得分:1)

假设您使用的是C#:

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