2017-01-19 86 views
1

我還是新的LINQ,並試圖SQL命令情況當SQL到LINQ

Id  | TitleName 
------ | ------ 
1  | Accounts 
2  | Buyer 
3  | Engineer 
4  | Other 
5  | Apple 


SELECT Id, TitleName 

    FROM dbo.Title 

     ORDER BY 

     CASE WHEN TitleName = 'Other' 

      THEN 0 ELSE 1 END DESC, TitleName ASC 

這將選擇表和上升是按照字母順序轉換

然後抓住「其他」和力量它到底部。

所以它結束了這樣

Id  | TitleName 
------ | ------ 
1  | Accounts 
5  | Apple 
2  | Buyer 
3  | Engineer 
4  | Other 

這個作品在SQL, 什麼是實現這一目標使用LINQ最好的方法?

編輯:已解決的問題

var queryAllCustomerTitle = from cust in _titleRepository.Table 
           orderby cust.TitleName == "Other" ? 1 : 0, cust.TitleName 
           select cust; 

回答

2

使用三元運算

OrderByDescending(a=>a.TitleName == "Other" ? 0:1).ThenBy(a=>a.TitleName)