c# - 递归自连接

标签 c# linq-to-sql

我有如下表。我需要获取所提供的用户 ID 的所有经理 ID。

userid managerid
10     1
9      10
6      9
2      6
4      1

如果我将 2 传递给我的方法,我需要获取 1,10,9 和 6。我已经编写了以下查询,它将仅返回第一级父级。即它只会返回 6 和 9。

public List<int?> mymethod (int userId){

return (from e in mycontext.EmployeeManagers
                     join e1 in m_context.EmployeeManagers
                        on e.UserId equals e1.ManagerId
                    where e1.UserId == userId
                     select e1.ManagerId).AsQueryable().ToList()
}

如何修改查询以返回所有经理雇用情况?

请帮忙。

最佳答案

您不能在单个 LINQ 表达式中执行此操作。您必须循环运行它。

更好的选择是在数据库中执行此操作,然后将结果返回到 LINQ。

参见:

关于c# - 递归自连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14373843/

相关文章:

c# - 为什么在 linq-to-sql select 中比较 UTF16 字符串时会得到错误的结果?

c# - 错误请求错误 :400 on Web service method call?

c# - 是否可以在远程 Windows 机器上创建性能计数器?

c# - 嵌套 if ... else 流的更简单/更有效的方法?

c# - 基于列合并两个列表

c# - 存储过程是用linq2sql生成类好还是直接调用存储过程好?

vb.net - 无法将类型 'System.Int32' 的对象强制转换为类型 'System.String'

c# - 如何使用 dbcontext SaveChanges 将修改的记录推送到数据库?

c# - 构建多列菜单的指南

c# - 如何使用 LINQ 从没有主键的表中插入/更新/删除记录