c# - 基于 sql server : . NET 中的两个字段不同

标签 c# sql-server asp.net-mvc group-by distinct

我正在尝试根据这两个字段获取表中唯一的记录。表结构为;

enter image description here

我在下面的查询中遇到的问题;

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());

它也像下面这样显示重复条目;

Dup Entries

我尝试将查询更改为;

return View(EmpList.Where(x => x.Status != "Present" && x.Status != "Absent" && x.Fine != 0).GroupBy(x => x.EmpID).Select(x => x.First()).ToList());

但这正如预期的那样只显示了如下所示的唯一员工;

No dups but incorrect

^这显然是不正确的,因为我希望所有员工都有不同的日期时间但没有重复的记录。

最佳答案

.GroupBy(x => new { x.Field1, x.Field2} ).Select(x => x.First()).ToList());

关于c# - 基于 sql server : . NET 中的两个字段不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49530419/

相关文章:

c# - 理论上是否可以从 C# 访问任何库(又名 PInvoke 在幕后做什么)?

asp.net-mvc - 拥有 ASP.NET MVC 4 + Node.JS 混合应用程序时的 session

c# - 如何从 IEnumerable 获取模型元数据?

c# - Linq2Sql 未在 C# 类中显示

c# - 使用 DirectShow .NET 从 SampleGrabber 计算 FFT

c# - Razor 中的 MVC 数据注释

sql-server - 跳过 SQL 生成的 XML 中的 NULL 参数

c# - EF6 重试过程为 SqlQuery 命令抛出 "The SqlParameter is already contained by another SqlParameterCollection"

sql - 即使没有可显示的记录也显示 0

javascript - ASP.net MVC - View 和 jQuery 最佳实践