Say I have a dataset such as this:

```
PersonId  |   ManagerId  |  DepartmentId
========================================

1             null          1
2             1             1
3             1             2
4             2             1

```

and so on.

I am looking for a Linq query which:

> 
> Given a **ManagerId** and a set of
>  **DepartmentIds** will give me all
>  relevant **PersonIds**. The query should
>  return **all PersonIds** under a manager,
>  all the way down the tree, not just
>  those immediately under that manager.
> 
> 
> 

Here's what I've tried so far: <http://pastebin.com/zF9dq6wj>

Thanks!
Chris.