1

我有两张桌子:

工作

  • 日期
  • 小时
  • 员工ID

员工

  • 员工ID
  • 员工老板ID

EmployeeBossId 指的是另一个员工,他可能也有老板等等。

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

例子

  • 鲍勃
  • 吉姆
    • 乔伊
    • 安东尼
      • 丽塔
    • 席德
    • 哈利
    • 莎莉
  • 麦克风

如果我提供 Jim 的 EmployeeId,我想要 Joey、Anthony(包括 Ben 和 Rita 的小时数)和 Sid 的总小时数。

我知道我问的有点多,但是我在决定如何攻击这个时遇到了麻烦,并希望那里的其他人清楚。谢谢。

我正在寻找要在一个数据库调用中完成的整个事情。

4

1 回答 1

1

SQL Server 支持称为Common Table Expressions的东西,它基本上允许您执行“递归查询”,这正是您解决父/父-父问题所需要的。

不幸的是,Linq 不支持这一点。但是有一种方法可以做到这一点,但它需要在您的 C# 代码中使用一些 SQL(准确地说是在上下文中)。请参阅此问题此操作方法

于 2012-08-01T12:37:35.833 回答