0

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

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 查询以Code仅返回 IEnumerable employeeIdList 中包含的员工 ID 的代码(列)?

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

4

1 回答 1

1

假设您使用的是 C#:

var processDataTemps = tempProcessDataService.GetAllProcessDataTemps()
                                             .Where(d => employeeIdList.Contains(d.U_Employee_ID))
                                             .Select(d => d.Code);
于 2013-02-27T12:57:43.210 回答