Фактическая проблема не связана с AddRange (), вам нужно условие where перед GroupBy (), чтобы ограничить посещаемость (до группировки) только записями, относящимися к этому конкретному сотруднику, например,
_context.AttendanceTable
.Where(a => a.Employee == employee.EmployeeName)
.GroupBy(a => a.DateAndTime.Date)
...
Зависит от вашей модели, для сравнения лучше использовать какой-либо идентификатор вместо EmployeeName.
Также вы можете использовать SelectMany () вместо цикла for и AddRange (), чтобы объединить результаты в один список. как это:
List<EmployeeAtt> empWithDate = _context.TblEmployee.ToList()
.SelectMany(employee =>
_context.AttendanceTable
.Where(a => a.Employee == employee.EmployeeName)
.GroupBy(a => a.DateAndTime.Date)
.Select(g => new EmployeeAtt
{
...
})
);
...