感覺就像在這裏一樣。我有一個父對象,它擁有一週中每天的子對象集合。所以,我可以這樣做parent.MondayChildren
或parent.TuesdayChildren
等如何將變量傳遞給.SelectMany
我的父對象的集合,在我的LINQ查詢我想用parents.SelectMany(c => c.MondayChildren)
但基於一週的當前天。
如何爲SelectMany
方法提供變量?
更新的信息:
我現在,我已經錯過了重要的信息出來看。此查詢將轉換爲SQL。爲了解釋,單位由多個SlotPool組成,並且PatientSchedules在一週中的每一天都分配給一個槽位。
我的代碼是下面這導致內部的.NET Framework數據提供程序錯誤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();
不需要特殊的語法。請顯示您遇到問題的實際代碼,並描述您希望工作的不同方式。 – BartoszKP
您可以添加您期望的代碼示例嗎?您不能將一個變量傳遞給'SelectMany',但是您可以在傳遞給'SelectMany'的'Func'的閉包中包含局部變量... –
如果您使用的是EntityFramework,則需要使用Expression>>'也有一些'IEnumerable's可能是'IQueryable's –