對不起,如果這已被問到某處,但我無法找到它。看來平均值和總和不適用於匿名類型。我一直在嘗試一段時間才能使此代碼運行,但沒有運氣。我做的查詢是:Average和Sum不適用於匿名類型?
var trainingPlan = (from tp in context.TPM_TRAININGPLAN
join tpd in context.TPM_TRAININGPLANDELIVERABLES on tp.TRAININGPLANID equals tpd.TRAININGPLANID
join t in context.TPM_TASK on tpd.TASKID equals t.TASKID
where tp.TPM_PROJECTVERSION.PROJECTID == projectId && tp.TPM_PROJECTVERSION.VERSIONID == versionId && tp.TRAININGPLANTYPE == "prescribed"
select new
{
CourseLength = tp.COURSELENGTHHOUR * 60 + tp.COURSELENGTHMINUTE,
DeliveryMethod = tp.TPM_DELIVERYMETHODS.NAME,
CourseCode = t.COURSECODE
});
我現在想借此CourseLength財產的總和,所以我做的:
int sum = trainingPlan.Sum(l => l.CourseLength.Value);
然而,「和」結束是0。同樣的, 「平均」。我可以在調試器下清楚地看到trainingPlan有兩個項目,一個CourseLength = 90,另一個CourseLength = 150.
難道Sum只是不適用於這些類型的枚舉?謝謝!
'總和()'最肯定適用於匿名類型 - 尤其是在這種情況下,如果沒有匿名類型,因爲它是被在某些時候轉換爲SQL。 –
所以你說它只是在通過數據庫提供者查詢時不起作用?在這種情況下,我可以「查詢」所有內容,然後將數字「平均」爲離線數據,而不是讓數據庫執行此操作嗎? –
您使用的LINQ提供程序(EF,LINQ to SQL,...)?你可以看看生成的SQL嗎? – svick