我正在尝试根据这两个字段获取表中唯一的记录。表结构为;
我在下面的查询中遇到的问题;
var dept = db.Departments.Where(x => x.LeadBy == SessionManager.CurrentUser.EmployeeId).FirstOrDefault();
var teams = db.Teams.Where(x => x.DeptID == dept.DepartmentId);
List<Employee> refinedEmpList = new List<Employee>();
var empList = db.Employees.ToList();
foreach (var v in teams)
{
foreach (var c in empList)
{
if (v.TeamID == c.TeamId)
{
refinedEmpList.Add(c);
}
}
}
var CronRep = db.CronReports.ToList();
List<CronReport> EmpList = new List<CronReport>();
foreach (var v in refinedEmpList)
{
foreach (var c in CronRep)
{
if (v.EmployeeId == c.EmpID)
{
EmpList.Add(c);
}
}
}
return View(EmpList.Where(x => x.Status != "Present" && x.Status != "Absent" && x.Fine != 0).ToList());
它也像下面这样显示重复条目;
我尝试将查询更改为;
return View(EmpList.Where(x => x.Status != "Present" && x.Status != "Absent" && x.Fine != 0).GroupBy(x => x.EmpID).Select(x => x.First()).ToList());
但这正如预期的那样只显示了如下所示的唯一员工;
^这显然是不正确的,因为我希望所有员工都有不同的日期时间但没有重复的记录。
最佳答案
.GroupBy(x => new { x.Field1, x.Field2} ).Select(x => x.First()).ToList());
关于c# - 基于 sql server : . NET 中的两个字段不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49530419/