实体框架有很多对很多

时间:2015-10-07 16:06:03

标签: c# entity-framework linq

我正在尝试弄清楚如何针对以下场景正确构建我的实体。 我有三个实体,部门,员工,工资。每个员工都可以在多个部门,每个部门的每个员工都有很多工资。我的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)

这将返回与特定员工关联的所有部门。现在我需要弄清楚如何只显示与该部门/员工组合相关的最新工资。目前它带回了所有工资实体。

最终尝试将结果中的以下字段与工资实体(以黄色突出显示)替换为单个字段&#34;金额&#34;来自工资实体。 Department.Name/(most recent)Wages.Amount

0 个答案:

没有答案