考虑以下几点:如何过滤一个基于另一个LINQ查询的结果?
DP_DatabaseTableAdapters.EmployeeTableAdapter employeetableAdapter = new DP_DatabaseTableAdapters.EmployeeTableAdapter();
DP_Database.EmployeeDataTable employeeTable = employeetableAdapter.GetData();
var leadEmployees = from e in employeeTable
where e.IsLead == true
select e;
DP_DatabaseTableAdapters.LaborTicketTableAdapter tableAdapter = new DP_DatabaseTableAdapters.LaborTicketTableAdapter();
DP_Database.LaborTicketDataTable table = tableAdapter.GetDataByDate(date.ToString("MM/dd/yyyy"));
var totHours = from l in table
join e in leadEmployees on l.EmployeeID equals e.EmployeeID
group l by l.EmployeeID into g
orderby g.Key
select new
{
EmployeeID = g.Key,
HoursWorked = g.Sum(s => s.HoursWorked)
};
总工时正确筛选的基础谁拥有IsLead位设置为true人leadEmployee名单上的结果。
我想知道如何使用where子句做到这一点,我已经attempd使用leadEmployees.Contanis不过需要一个整体EmployeeRow ...
我怎么能添加什么看起来是一个组成部分IN子句到where过滤器来替换连接?
var totHours = from l in table
where ??????
group l by l.EmployeeID into g
orderby g.Key
select new
{
EmployeeID = g.Key,
HoursWorked = g.Sum(s => s.HoursWorked)
};
这样,这将您的where子句需要专门评价? – Firoso 2011-06-08 18:16:47
与您的主要问题无关,但您可以简化收集领导雇员的行:var leadEmployees = employeeTable.Where(e => e.IsLead);' – 2011-06-08 19:25:17