问题描述
在一种情况下,我正在创建报告,并尝试返回所有行,但是有多行的employee_id,salary_id,period_id相等,那么我想选择一个最新的行日期。
例如,
eid sid pid value Date
1 1 1 2000 15-09
1 2 2 4000 10-09
2 3 1 1500 17-09
1 1 1 3000 17-09
2 3 1 3000 13-08
我想回来
eid sid pid value Date
1 1 1 3000 17-09
1 2 2 4000 10-09
2 3 1 1500 17-09
这是我的代码
var Payslips = await reportQuery.Select(es => new
{
// data for any role can access
EmployeeId = es.Id,Histories = es.EmployeeCalculatedSalaryElementHistories
.Where(ecs => ecs.PayrollPeriodId == payrollPeriodId
&& ecs.SalaryElement.Classification == SalaryElementClassification.EMPLOYEE
)
.OrderByDescending(ecs => ecs.CreatedAt)
.AsQueryable()
.Select(selection) // custom data based on role
.GroupBy(e=>e.SalaryElementIdentifier)
.Select(x => x.FirstOrDefault())
.ToList()
})
.AsNoTracking()
//.IgnoreQueryFilters()
.ToListAsync();
但是我出错了
指定的过滤条件无效。
如何使用linq做到这一点?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)