想象一下,当您有一个包含用户的表时,我们的用户具有层次结构。
[Key]
public virtual int UserId { get; set; }
public virtual UserProfile UserParent { get; set; }
public virtual int? UserParentId { get; set; }
public virtual String UserName { get; set; }
将样本数据放在那里:
用户 ID 用户父 ID 用户名
- 1 | 空 | 老板
- 2 | 1 | 戴安娜经理
- 3 | 2 | 工人山姆
- 4 | 2 | 工人鲍勃
- 5 | 1 | 黄经理
- 6 | 5 | 卢工人
为每个用户分配一把铲子:P
[Key]
public virtual int ShovelId { get; set; }
public virtual string ShovelSerialNumber { get; set; }
public virtual int UserId { get; set; }
将样本数据放在那里:
ShovelId ShovelSerialNumbe UserId
- 1 | 12345BK | 3
- 2 | 99999ZK | 4
- 3 | 88888KP | 6
这一切的目的是获取铲子的序列号,对用户表进行分层查询。老板会看到所有的铲子,但只有铲子管理下属员工。
关于如何在 LINQ 中实现这一点的任何想法和提示,考虑到可能有数千名员工和数千名铁锹,并且不知道凹陷层次结构的深度。
谢谢帮助。