2017-01-19 15 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?

Edit: Устранена

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)

Смежные вопросы