請原諒我以前曾問過這個問題,但我不確定我要求的是什麼,這會使得搜索起來很困難。將linq子查詢分解爲函數
目前,我有以下LINQ查詢(使用LINQ到實體):
results = (from r in query
select new PatientReport
{
Report = r,
Patient = (from patient in database.PatientSet
where patient.IsActive && patient.Account == r.Account
select patient).FirstOrDefault()
}).ToList();
現在這工作得很好,LINQ到實體,從它產生一個單一的連接查詢,和所有的花花公子。然而,我在我的代碼的一些其他地方發現,我有以下幾點:
(from patient in database.PatientSet
where patient.IsActive && patient.Account == r.Account
select patient).FirstOrDefault()
現在,我的問題是: 是否有可能有一些代碼會表現得一樣的第一個片段,但會是這樣的:
results = (from r in query
select new PatientReport
{
Report = r,
Patient = database.GetActivePatient(r.Account)
}).ToList();
,並在數據庫類(或者患者,或者作爲一個擴展的方法),也就是將組裝下面的查詢(顯然不執行它,那麼它可能函數不作爲其他查詢的一部分運行):
public xx GetActivePatient(string account)
{
return (from patient in database.PatientSet
where patient.IsActive && patient.Account == r.Account
select patient).FirstOrDefault()
}
雖然我明白,GetActivePatient的簽名很可能是毛茸茸的瘋狂和完全的IQueryable或IExpression等
切實我試圖創建一個用於創建可用於作爲一部分的查詢功能其他查詢。
任何幫助(即使它是'不,這是不可能的'),表示讚賞。謝謝。
不知道我完全理解 - 就沒有我對於初學者需要通過跨數據上下文(或IQueryable的數據集)? – Tom