次の表を想定
人
- ID
- 名前
個人チーム
- ID
- person_id
- is_supervisor です
- team_id
チーム
- ID
タイムシート
- ID
- team_id
スーパーバイザーのすべてのタイムシートを取得したいと考えています。スーパーバイザーの名前を取得したので、スーパーバイザーの役割を持つチームを選択する必要があります。次に、それらのチームのすべてのタイム シートを選択します。
次のクエリが実行されると思います
var allTimeSheets = ctx.PersonTeam.Where(y => y.Person.name == supervisor_name).Where(x => x.is_supervisor == true).Select(z => z.Team).Select(t => t.TimeSheet);
この操作の後、 allTimeSheetsが
IQueryable<ICollection<TimeSheet>>
もっと期待した
<ICollection<TimeSheet>>
または任意のIEnumrable。
次に、質問は次のとおりです。
- なぜ私はそのような結果を得たのですか?
- IQueryable < ICollection < TimeSheet > >を取得したTimeSheet[]を取得する方法は?