微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

递归Linq查询-人员>经理>部门

如何解决递归Linq查询-人员>经理>部门

|| 说我有一个像这样的数据集:
PersonId  |   ManagerId  |  DepartmentId
========================================

1             null          1
2             1             1
3             1             2
4             2             1
等等。 我正在寻找一个Linq查询,其中:   给定一个ManagerId和一组   DepartmentIds会给我全部   相关的PersonIds。查询应   返回经理下的所有PersonId,   一直到树下,而不仅仅是   那些直接在那个经理下的人。 这是我到目前为止尝试过的内容:http://pastebin.com/zF9dq6wj 谢谢! 克里斯。     

解决方法

        使用Linq,如果没有多次访问数据库,就没有自动的方法(我听说过)。这样,它实际上与任何其他递归调用结构都没有什么不同,您可以在递归方法调用之间进行选择,还可以选择使用System.Collections.Queue(或Stack)对象获取ID,等等。如果您的后端数据库是SQL,在Server 2008或更高版本中,您可以使用它的递归查询功能,但是您必须调用一个sproc来执行它,因为Linq无法自行进行翻译。     ,        您不能在Linq2SQL或Linq2Entities中执行递归查询。我建议用CTE编写一个View并将其添加到您的DataContext文件中。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。