適用場景:對查詢出的語句進行排序,比如按時間排序等等。
說明:按指定表示式對集合排序;延遲,:按指定表示式對集合排序;延遲,預設是公升序,加上descending表示降序,對應的擴充套件方法是orderby和orderbydescending
這個例子使用 orderby 按雇用日期對雇員進行排序:
var q = from e in db.employeesorderby e.hiredate
select e;
說明:預設為公升序
注意:where和order by的順序並不重要。而在t-sql中,where和order by有嚴格的位置限制。
var q =from o in db.orders
where o.shipcity == "london"
orderby o.freight
select o;
語句描述:使用where和orderby按運費進行排序。
var q =from p in db.products
orderby p.unitprice descending
select p;
語句描述:使用復合的 orderby 對客戶進行排序,進行排序:
var q =from c in db.customers
orderby c.city, c.contactname
select c;
說明:按多個表示式進行排序,例如先按city排序,當city相同時,按contactname排序。這一句用lambda表示式像這樣寫:
var q =.orderby(c => c.city)
.thenby(c => c.contactname).tolist();
在t-sql中沒有thenby語句,其依然翻譯為orderby,所以也可以用下面語句來表達:
var q =db.customers
.orderby(c => c.contactname)
.orderby(c => c.city).tolist();
所要注意的是,多個orderby操作時,級連方式是按逆序。對於降序的,用相應的降序操作符替換即可。
var q =db.customers
.orderbydescending(c => c.city)
.thenbydescending(c => c.contactname).tolist();
LINQ標準查詢運算子執行方式 非流式處理
linq的延遲執行方式分兩種,一種是流式,另一種是非流式。非流式處理運算子必須先讀取所有源資料,然後才能生成結果元素。非流式處理的運算子包括 groupby orderby orderbydescending reverse thenby thenbydescending groupby listp...
MVC 標準查詢運算子
標準查詢運算子 定義在system.linq.enumerable類中的50多個為ienumerable準備的擴充套件方法,這些方法用來 對它操作的集合進行查詢篩選。篩選集合where 需要提供乙個帶bool返回值的 篩選器 從而表明集合中某個元素是否應該被返回。查詢投射,返回新物件集合ienume...
LINQ之運算子轉換
使用 asenumerable可返回型別化為泛型 ienumerable 的引數。在此示例中,linq to sql 使用預設泛型 query 會嘗試將查詢轉換為 sql 並在伺服器上執行。但 where 子句引用使用者定義的客戶端方法 isvalidproduct 此方法無法轉換為 sql。解決方...