我有两张桌子:
工作
员工
EmployeeBossId是指另一名员工,也可能有老板等等。
所有者可以处于无限多个层次结构中(尽管实际上它只有3个级别)。我正在寻找一个LINQ语句形式的聪明的数据库调用,它可以接收 EmployeeId 并告诉我该员工的所有小时的总和,包括任何“子”员工 - 按每个直属子员工分组!
示例
如果我提供Jim的EmployeeId,我想要Joey,Anthony(包括Ben和Rita的小时数)和Sid的总小时数。
我知道我的要求有点多,但我无法决定如何攻击这个,并希望那里的其他人很清楚。感谢。
我正在寻找在一个数据库调用中完成的所有事情。
答案 0 :(得分:1)
SQL Server支持名为Common Table Expressions的内容,它基本上允许您执行“递归查询”,这正是解决父/父父事物所需的问题。
Linq不支持这一点。但有一种方法可以做到这一点,但它需要在您的C#代码中使用一些SQL(在上下文中是准确的)。请参阅this question和this howto。