【发布时间】:2019-12-06 08:45:21
【问题描述】:
示例:A 是经理,B 是 A 的下属,C 是 B 的下属。
我需要做的是在 A 的屏幕上显示一个下属列表,这些下属是 B 和 C 的信息。 这就是我现在所拥有的,它将显示以 A 作为其经理的人,即 B 等。
displayList = db.LeaveApplicationDbSet
.Where(l => db.EmployeeDbSet
.FirstOrDefault(e => e.user_id.Equals(l.UserId))
.manager_id.Equals(userDetails.EmployeeId)
);
关于如何获得层次结构的大子部分的任何想法? 例如:A -> B -> C 所以从 A 的角度来看,他/她应该能够看到 B 和 C 的信息
更新:
public class MysqlDbContext: DbContext
{
public MysqlDbContext() : base(dbName)
{ }
public DbSet<Employee> EmployeeDbSet { get; set; }
}
public class Employee : IValidatableObject
{
[Column("id")]
public int id { get; set; }
[Required]
[Column("user_id")]
public string user_id { get; set; }
[Column("full_name")]
public string full_name { get; set; }
[Required]
public string manager_id { get; set; }
}
【问题讨论】:
-
我没有使用 asp、entity 和 linq 的经验,所以如果它不适合您的程序,请忽略此命令。我会想到一个树数据结构来完成这个,当然这也可以通过数据库查询来完成。
-
你能展示你的实体吗?这样我们就可以对属性有更清晰的了解。
-
添加了新代码,不确定您是否是这个意思
-
您正在寻找的是 Linq 递归,但使用循环的常规方法来解决这个问题要简单得多。
-
manager_id 是 SQL 中的外键吗?
标签: c# asp.net-mvc entity-framework linq