使用LINQ排序分頁日期遇到NULL值的處理

2021-08-21 04:44:59 字數 2230 閱讀 6682

1 根據條件來選擇排序物件

因為涉及到聯查物件的屬性排序,所以不能直接根據條件排序分頁

比如:

public static iqueryabletopage(iqueryableallitems, int pageindex, int pagesize)

mquery = mquery.orderbydescending(o => o.id);

mquery = dbcontexthelp.topage(mquery, pageindex, pagesize);

var list = (from ticket in mquery

join ticketlose in dbcontext.ticketlose

on ticket.id equals ticketlose.ticketid

into ticketlosetemp

select new  

).tolist();

這樣是在結果集出來之前排序,是無法對聯查表的屬性排序。      

改為這樣

var orderquery= (from ticket in mquery

join ticketlose in dbcontext.ticketlose

on ticket.id equals ticketlose.ticketid

into ticketlosetemp

select new  

);

var relist = orderquery.select(o => new viewticketdetail()

).orderby(o => o.activationtime).skip(pageindex).take(pagesize).tolist();

能對結果集的屬性排序

2 根據條件選擇排序字段

if (isuse==0)

).skip(pageindex).take(pagesize).tolist();

}if (isuse == 1)

).skip(pageindex).take(pagesize).tolist();

}2 可以在排序時設定預設值

orderby(o => o.losetime.getvalueordefault(datetime.maxvalue)).skip(pageindex).take(pagesize).tolist();

3 合計金額報錯解決

.sum(od => (decimal?)od.quantity).getvalueordefault();

4 排序不能設定預設值,但是查詢可以設定預設值,改寫

var orderquery = (from ticket in mquery

join wxpr in dbcontext.wx_shop_product

on ticket.specialgoods equals wxpr.id

join activation in dbcontext.ticketactivation

on ticket.id equals activation.ticketid

into activationtemp

from act in activationtemp.defaultifempty()

join ticketlose in dbcontext.ticketlose

on ticket.id equals ticketlose.ticketid

into ticketlosetemp

from lose in ticketlosetemp.defaultifempty()

join code in dbcontext.msd_code.where(w => w.wordscode == "msd_useticket_isuse")

on ticket.isuse equals code.numbercode

select new

).orderby(o => o.losetime).skip(pageindex).take(pagesize).tolist();

returnmodels = new pagedlist2(relist, pageindex, pageindex, totalitemcount);

Linq 使用skip和take分頁

static int main string args while pagenum pagesize computer.length 頁記錄 pagenum 1 輸出每頁內容 foreach var q in page pagenum console.readkey return 0 如果是stat...

C Collection使用Linq排序的方法

public static void sort collectionsource,funckeyselector public static void sortdescending collectionsource,funckeyselector public static void sort ob...

MySQL分頁使用limit遇到的問題

今天使用elementui元件進行分頁,編寫完畢之後,進行測試,發現好像 不對的樣子 總共25條資料,但是三頁,每頁都有10條資料,我輸出了接收的引數,好像沒問題,於是在資料庫使用sql,進行模擬分頁,才發現我把limit的用法搞混淆了,limit一共有兩個引數,我把第乙個引數誤認為是當前頁,第二個...