按母公司和母公司划分的LINQ组';父母

按母公司和母公司划分的LINQ组';父母,linq,linq-to-entities,Linq,Linq To Entities,我有两张桌子: 工作 日期 小时数 雇员ID 员工 雇员ID 老板 EmployeeBossId指的是另一名员工,他可能也有一个老板,以此类推 所有者可以处于无限多个层次结构中(尽管实际上,它仅处于3个级别)。我正在寻找一个LINQ语句形式的智能数据库调用,它可以接收EmployeeId,并告诉我该员工所有小时数的总和,包括任何“子”员工-按每个直接子员工分组 示例 鲍勃 吉姆 乔伊 安东尼 本 丽塔 希德 丹 哈利 萨莉 迈克 如果我提供Jim的雇员ID,我想要Joey

我有两张桌子:

工作

  • 日期
  • 小时数
  • 雇员ID
员工

  • 雇员ID
  • 老板
EmployeeBossId指的是另一名员工,他可能也有一个老板,以此类推

所有者可以处于无限多个层次结构中(尽管实际上,它仅处于3个级别)。我正在寻找一个LINQ语句形式的智能数据库调用,它可以接收EmployeeId,并告诉我该员工所有小时数的总和,包括任何“子”员工-按每个直接子员工分组

示例

  • 鲍勃
  • 吉姆
    • 乔伊
    • 安东尼
      • 丽塔
    • 希德
    • 哈利
    • 萨莉
  • 迈克
如果我提供Jim的雇员ID,我想要Joey、Anthony和Sid的总工作时间(包括Ben和Rita的工作时间)

我知道我的要求有点高,但我很难决定如何攻击这一个,并希望其他人清楚这一点。谢谢


我希望在一个数据库调用中完成全部工作。

SQL Server支持一个名为的功能,它基本上允许您执行“递归查询”,这正是解决父/父问题所需要的


很遗憾,Linq不支持这一点。但是有一种方法可以做到这一点,但它需要在C#代码中使用一些SQL(确切地说是在上下文中)。请参阅和。

SQL Server支持一种称为的功能,它基本上允许您执行“递归查询”,这正是解决父/父问题所需要的


很遗憾,Linq不支持这一点。但是有一种方法可以做到这一点,但它需要在C#代码中使用一些SQL(确切地说是在上下文中)。请参阅和。

感谢您为我指出这个问题的答案。我不知道t-SQL是如何做到这一点的,所以在我问自己的问题之前,我没有找到这个问题。谢谢你告诉我这个问题的答案。我不知道t-SQL的实现方法,所以我在问自己的问题之前没有找到这个问题。