我有以下的LINQ to SQL查詢,其中我試圖做一個多列GROUP BY:( 「不能按類型 '任務' 命令」)Linq to SQL:我如何訂購通過組合對象?
return from revision in dataContext.Revisions
where revision.BranchID == sourceBranch.BranchID-1
&& !revision.HasBeenMerged
group revision by new Task(revision.TaskSourceCode.ToUpper(),
revision.TaskSourceID)
into grouping
orderby grouping.Key ascending
select (ITask)grouping.Key;
這將引發InvalidOperationException異常。
是否有任務必須實現一個接口(它已經實現了IComparable,IComparable的<ITask>)? Task是否需要是Linq to SQL Entity(目前不是,因爲沒有相應的表)。或者這僅僅是Linq to SQL不支持的東西?
請注意,我已經嘗試過了分組匿名類型,它失敗,類似的出現InvalidOperationException:
...
group revision by new { Code = revision.TaskSourceCode.ToUpper(),
Id = revision.TaskSourceID }
...
對於它的價值,注意,任務目標是2場的複合物;一個是單個字符(通常是'S'或'B'),另一個是int(如果你喜歡,實際上是一個跨數據庫的「外鍵」)。任務排序的行爲只是比較他們的字符串表示;例如。任務「B101」 <任務「S999」
你能解釋一下你在代碼/僞代碼中的建議嗎?我只是沒有遵循你所得到的... – 2008-11-27 00:53:40