Linq to SQL實現鏈結加條件查詢

2022-02-07 22:15:39 字數 2427 閱讀 3075

需要顯示出所有的會員資訊(即memberinfo),排序要求按照會員排序表(membersort)中會員型別(membertype)為0的sortnumber列進行排序。可以總結為三條:1.需要顯示出所有的會員資訊;2.按照會員排序表中的sortnumber列進行排序;3.只按照會員排序表中會員型別為0的會員進行排序。

create

table

memberinfo

(memberid

int,

membername

nvarchar(50

))create

table

membersort

(memberid

int,

sortnumber

int,

membertype

int)

insert

into

memberinfo

values(1

,'a'

)insert

into

memberinfo

values(2

,'b'

)insert

into

memberinfo

values(3

,'c'

)insert

into

memberinfo

values(4

,'d'

)insert

into

memberinfo

values(5

,'e'

)insert

into

membersort

values(1

,5,0

)insert

into

membersort

values(2

,4,0

)insert

into

membersort

values(3

,3,1

)--drop table memberinfo

--drop table membersort

採用傳統的sql方式查詢**:

select[t0

].[memberid],

[t0].

[membername

]from

[dbo].

[memberinfo]as

[t0]left

outer

join

[dbo].

[membersort]as

[t1]on

([t1]

.[membertype]=

0) and([t0

].[memberid]=

[t1].

[memberid])

orderby(

case

when[t1

].[sortnumber]is

notnull

then[t1

].[sortnumber

]else

9999

end)

希望在linq to sql中獲得同樣的支援。

首次嘗試失敗的**:

vardata

=from

m in

db.memberinfo

join

s in

db.membersort

onm.memberid equals s.memberid

&&s.membertype ==0

into

xfrom

cx in

x.defaultifempty()

orderby cx.sortnumber.hasvalue ? cx.sortnumber.value :

9999

select

m;經過修正**如下:

vardata

=from

m in

db.memberinfo

join

s in

db.membersort

onm.memberid equals s.memberid

into

xfrom

cx in

x.where

(d =>

d.membertype ==0

).defaultifempty()

orderby cx.sortnumber.hasvalue ? cx.sortnumber.value :

9999

select

m;關鍵語句即from cx in x.where(d=>d.membertype==0).defaultempty(); 即為返回連線組合當中membertype==0或不存在membertype值的資料集合。

tbody 加滾動條

在頁面中給tbody加滾動條保持thead不動。rel stylesheet type text css href main.css head class table head1th head2th head3th head4th head5th head6th tr thead 1td 1td 1...

div 加滾動條

引用 overflow auto 滾動條相關顏色屬性 face color 滑塊顏色 hightlight color 高亮顏色 3dlight color 三維光線顏色 darkshadow color 暗影顏色 shadow color 陰影顏色 arrow color 箭頭顏色 tack co...

Linq to sql實現簡單查詢和分頁

最近跟著做高效平台的專案,在積累專案經驗的同時也吸收了不少新的知識,其中很讓我欣喜的是居然可以不用寫sql語句就能運算元據庫,對於sql語句經常出問題的程式設計人員來講毫無疑問真是雪中送炭呀。此處的 炭 就是linq to sql啦。linq to sql是linq net語言整合查詢 的一部分,用...