我有一个名为Payroll的表格。Payroll可以有许多PayStubs。换句话说,有一个名为PayStub的表,它是Payroll的子实体。PayStub有一个名为PayrollTax的子实体。我想要编写一个LINQ- to -SQL查询,以获取具有多个工资税的所有工资单。我使用以下查询:
public IList<Payroll> GetPayrollsWithPayrollTaxes()
{
return (from payroll in ActiveContext.Payrolls
join payStub in ActiveContext.PayStubs on payroll.PayrollID equals payStub.PayrollID
where payStub.InternalPayrollTaxes.Count > 0
select payroll
).ToList();
}问题是,由于Payroll和PayStub之间存在一对多的关系,我最终得到了两次相同的工资单。我想要一份独特的工资单。
任何想法和建议,我们将不胜感激!
发布于 2011-07-16 01:59:59
你试过.Distinct().ToList()吗?
或者,您可以像这样在join后面添加一个into:
(from payroll in ActiveContext.Payrolls
join payStub in ActiveContext.PayStubs on payroll.PayrollID equals payStub.PayrollID into payStubGroup
where payStubGroup.Any(p => p.InternalPayrollTaxes.Any())
select payroll
).ToList();发布于 2011-07-16 04:39:49
我认为在这里使用Any (在SQL中是EXISTS)可能会对您有所帮助。
public IList<Payroll> GetPayrollsWithPayrollTaxes()
{
return (from payroll in ActiveContext.Payrolls
where ActiveContextPayStubs.Any(payStub =>
payroll.PayrollID == payStub.PayrollID &&
payStub.InternalPayrollTaxes.Any())
select payroll
).ToList();
}https://stackoverflow.com/questions/6711038
复制相似问题