C# 进程中的Linq查询阶段

C# 进程中的Linq查询阶段,c#,linq,C#,Linq,我的模特是- 雇员 public class Employee { public int EmployeeId { get; set; } public string GivenName { get; set; } public string Surname { get; set; } public virtual ICollection<EmployeeAudit> EmployeeAudits { get; set; } } 所以我会有很多员工

我的模特是- 雇员

public class Employee
{
    public int EmployeeId { get; set; }
    public string GivenName { get; set; }
    public string Surname { get; set; }
    public virtual ICollection<EmployeeAudit> EmployeeAudits { get; set; }

}
所以我会有很多员工,他们也会有很多员工-

雇员
id------姓名
1------鲍勃
吉姆
希拉

审计
empid---auditcode---------datecreated
1-----------已创建-----------------13/12/12
2-----------已创建-----------------13/12/12
3-----------已创建-----------------13/12/12
2------提交给人力资源部------2012年12月13日
3------提交给人力资源部------2012年12月13日
3------通过验证---12月13日


审核代表流程中的某个阶段,如何使用linq查询以显示在何处 在这个过程中,一名员工处于最佳状态


例如,我想显示处于SubmittedToHr但已创建但未通过验证的所有员工。

此查询将返回最后一个审核代码等于SubmittedToHr的所有员工(假设审核代码只能从Created>SubmittedToHr>PassedForVerification更改):


那么,你的问题是什么?你尝试了什么?谢谢拉兹别列佐夫斯基的回答。我会尝试一下,让你知道我的进展如何。我对整个.net/mvc/c#/linq场景都是新手,所以我仍然在努力站稳脚跟。@user1903548没问题。这是你需要的吗?若审计代码分配不是连续的,那个么应该更改查询以设置附加条件。是的,看起来这就是我需要的。我将在我的应用程序中设置一些数据并试用。是的,现在可以了,但是我不知道它是否返回正确的结果,测试将确认。干杯
public class EmployeeAudit
 {
    public int EmployeeAuditId { get; set; }

    public DateTime DateCreated { get; set; }
    public string AuditCode { get; set; }

    public int EmployeeId { get; set; }
    public Employee Employee { get; set; }
}
var query = from e in context.Employees
            join ea in context.EmployeeAudit 
                 on e.EmployeeId equals ea.EmployeeId into g
            where g.OrderByDescending(x => x.DateCreated)
                   .FirstOrDefault().AuditCode == "SubmittedToHR"
            select e;