2012-12-06 89 views
0

我是Linq的新手。我只想知道如何通過列表位置在Linq中應用c#表達式進行排序。如果有可能,請告訴我,或者如果不是,背後的原因是什麼? 喜歡Sql是否可以按linq中的列位置進行排序?

SELECT Title, FirstName, LastName 
FROM Employees 
ORDER BY 1,3 

回答

3

這不可能在LINQ和SQL的不好的做法。只需指定您想要排序的列/屬性即可。

等效的LINQ查詢是這樣的:

employees.Select(x => new { x.Title, x.FirstName, x.LastName }) 
     .OrderBy(x => x.Title) 
     .ThenBy(x => x.LastName); 

或者在查詢語法:

from e in employees 
order by e.Title, e.LastName 
select new { x.Title, x.FirstName, x.LastName }; 
+0

但是如何使用您的查詢我的,並在條款意味着沒有被那裏? –

+0

您可以按原樣使用它。這是*方法鏈*語法。我用等價的* query *語法樣本更新了我的答案。 –

+0

好的,現在就完成了。 –

0

不excatly知道你的意思,但如果你的意思是:

SELECT Title, FirstName, LastName FROM Employees ORDER BY Title, LastName 

然後你會這麼做:

var results = from e in context.Employees 
       order by e.Title, e.Lastname 
       select e; 

var results = context.Employees.OrderBy(e => e.Title).ThenBy(e => e.LastName) 

以備將來使用一個很好的參考:

+0

好吧,我明白了,非常感謝你的參考。 –

相關問題