假设我有一个这样的数据集:
PersonId | ManagerId | DepartmentId
========================================
1 null 1
2 1 1
3 1 2
4 2 1
Run Code Online (Sandbox Code Playgroud)
等等.
我正在寻找一个Linq查询:
给定一个ManagerId和一组 DepartmentId将给我所有相关的PersonIds.查询应该返回管理器下的所有PersonId,一直到树下,而不仅仅是那个管理器下面的那些.
这是我到目前为止所尝试的:http://pastebin.com/zF9dq6wj
谢谢!克里斯.
使用Linq,没有自动的方法来做这个(我听说过)没有多次访问数据库.因此,它实际上与任何其他递归调用结构没有什么不同,您可以在递归方法调用之间选择,一段时间使用System.Collections.Queue(或Stack)对象进行ID等.如果您的后端数据库是SQL Server 2008或更高,你可以利用它的递归查询功能,但你必须调用一个sproc来做它,因为Linq将无法自己进行翻译.
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |