ユーザーが階層構造になっているテーブルがある状況を想像してみてください。
[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; }
そこにサンプル データを配置します。
UserId UserParentId UserName
- 1 | null | null | ボス
- 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
このすべての目的は、users テーブルに対する階層クエリを使用して、シャベルのシリアル番号を取得することです。上司はすべてのシャベルを表示しますが、シャベルのみが部下の従業員を管理します。
数千人の従業員と数千人のシャベルが存在する可能性があり、うつ病階層の深さがわからないことを考慮して、LINQ でこれを達成する方法に関するアイデアとヒント。
助けてくれてありがとう。