我正在尝试弄清楚如何针对以下场景正确构建我的实体。 我有三个实体,部门,员工,工资。每个员工都可以在多个部门,每个部门的每个员工都有很多工资。我的Linq查询只会获取部门中员工的最新工资(按ID)。 我的最终目标是为特定员工获得每个部门和最近的工资。 这就是我现在拥有的。有没有更好的方法来构建它?
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
public virtual ICollection<Wage> Wages { get; set; }
}
public class Employee
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Department> Departments { get; set; }
public virtual ICollection<Wage> Wages { get; set; }
}
public class Wage
{
public int Id { get; set; }
public float Amount { get; set; }
public ICollection<Department> Departments { get; set; }
public ICollection<Employee> Employees { get; set; }
}
我正在尝试使用Linq查询来提取特定员工的所有部门和工资。
Employees
.Where(e => e.EmployeeId.Equals(12345))
.SelectMany(e => e.Departments)
这将返回与特定员工关联的所有部门。现在我需要弄清楚如何只显示与该部门/员工组合相关的最新工资。目前它带回了所有工资实体。