我有一組結果從Linq返回到SQL查詢。每個結果有一個Name
和一個SeriesId
。該SeriesId
可以是從1到N的任意值,如何更改默認OrderBy功能,以便首先按給定值排序?
所以結果可能最初來到這樣的數據庫進行(即任何順序):
FundA1 FundA6 FundA4 FundC6 FundC3 FundC4 FundB2 FundB7 FundB8 FundB6
我需要得到這些由Name
第一有序化,然後按SeriesId
但是我需要先顯示SeriesId == 6
,然後按其他順序顯示。
因此,舉例來說,我需要
**FundA6** FundA1 FundA4 **FundB6** FundB2 FundB7 FundB8 **FundC6** FundC3 FundC4
我知道這是我能夠通過Name
訂單,然後SeriesId
通過這樣做:
但這將通過最低階的SeriesId
價值第一。有沒有辦法讓我通過指定它應該從6開始而不是1開始訂購SeriesId
來覆蓋此默認功能?
你認爲做一些明確的事情會更清潔嗎?比如'ThenBy(f => f.SeriedId == 6?0:1)'(假設它轉化爲高效的SQL),而不是依賴某人理解真假的排序? –
@Anthony:這是個好主意,是的。將編輯。 –