ここでは完全な劣等生のように感じます。曜日ごとに子オブジェクトのコレクションを保持する親オブジェクトがあります。だから私は何かのようなことをすることができparent.MondayChildren
ますparent.TuesdayChildren
。
親オブジェクトのコレクションがあり、linq クエリで使用したいのですparents.SelectMany(c => c.MondayChildren)
が、現在の曜日に基づいています。
SelectMany
メソッドに変数を提供するにはどうすればよいですか?
更新情報:
重要な情報を見逃していることがわかりました。このクエリは SQL に変換されます。説明すると、ユニットは複数のスロットプールで構成され、患者スケジュールは曜日ごとにスロットプールに割り当てられます。
内部 .NET Framework Data Provider エラー 1025 を引き起こす私のコードは以下のとおりです。
Func<SlotPool, IEnumerable<PatientSchedule>> queryDay = null;
switch (DateTime.Today.DayOfWeek)
{
case DayOfWeek.Monday:
queryDay = d => d.MondayPatientSchedules;
break;
case DayOfWeek.Tuesday:
queryDay = d => d.TuesdayPatientSchedules;
break;
// .. Not shown for brevity
default:
throw new NotSupportedException("Unsupported DayOfWeek");
}
IEnumerable<UnitWithCountVM> data = _unitOfWork.Units.GetAll()
.Select(u => new UnitWithCountVM()
{
ID = u.ID,
Name = u.Name,
PatientNumber = u.SlotPools.SelectMany(queryDay).Count()
}).ToList();