В основном я хочу написать запрос linq для определения количества дней, в течение которых они присутствовали. Но у меня есть эти шесть временных фильтров: сегодня, вчера, текущий месяц, предыдущий месяц, текущий год, предыдущий год. Итак, теперь у меня есть эти запросы, которые я упростил, но перед этими запросами ниже я фактически приказываю этим сотрудникам по разным аспектам и после заказа, как вы можете видеть, я присваиваю ранг, а затем в то же время выясняю его количество (которое может или не может быть использовано для их ранжирования позже) -
var result=datacontext.Employee(c=>c.Company.Id==companyId).Select((k, index) => new EmployeeDTO()
{
EmployeeId=k.Employee.Id,
CompanyId=Employee.Company.Id
PresentCount=(from e in employeeAttendance
where d.RecNum == k.recnum
&& d.date_present.Year == DateTime.Today.Year
&& d.date_present.Month == DateTime.Today.Month
&& d.date_present.Day == DateTime.Today.Day
select d).Count()
}
Так что теперь, когда фильтр, скажем, в предыдущем году у меня -
var result=datacontext.Employee(c=>c.Company.Id==companyId).Select((k, index) => new EmployeeDTO()
{
Position=
EmployeeId=k.Employee.Id,
CompanyId=Employee.Company.Id
PresentCount=(from e in employeeAttendance
where d.RecNum == k.recnum
&& d.date_present.Year == (DateTime.Today.Year-1)
}
и если он у меня есть в текущем месяце -
var result=datacontext.Employee(c=>c.Company.Id==companyId).Select((k, index) => new EmployeeDTO()
{
EmployeeId=k.Employee.Id,
CompanyId=Employee.Company.Id
PresentCount=(from e in employeeAttendance
where d.RecNum == k.recnum
&& d.date_present.Month == DateTime.Today.Month
&& d.date_present.Year == DateTime.Today.Year
}
Я хочу объединить все это в одном запросе с динамическим предложением для определения текущего количества?