Linq 如何實現 in 與 not in

2022-01-12 15:45:31 字數 2257 閱讀 2420

接觸 linq 也有很長的一段時間了,有些在 sql 語句中用的很順手的東西在 linq 中卻不知道如何實現了,最近遇到了乙個問題,在 linq 的 where 條件式中要如何使用 in 與 not in 呢? 這時候真的開始懷念 t-sql 其實還是最好用的。為了讓自己日後開發時更為方便,於是花了一點時間,參考一些網路資料及 msdn 後,得到以下的測試結果:

t-sql的in:

selectproductid, productname, categoryid

fromdbo.products

wherecategoryidin(1, 2)

t-sql的not in:

selectproductid, productname, categoryid

fromdbo.products

wherecategoryidnot in(1, 2)

orselectproductid, productname, categoryid

fromdbo.products

wherenotcategoryidin(1, 2)

linq的in:

var queryresult = from pindb.products

where (new int? ).contains(p.categoryid)

select p;

linq的in解析成sql:

select[t0].[productid], [t0].[productname], [t0].[supplierid], [t0].[categoryid], [t0].[quantityperunit], [t0].[unitprice], [t0].[unitsinstock], [t0].[unitsonorder], [t0].[reorderlevel], [t0].[discontinued]

from[dbo].[products]as[t0]

where[t0].[categoryid]in(@p0, @p1)

linq的not in:

var queryresult = from pindb.products

where ! (new int? ).contains(p.categoryid)

select p;

linq的not in解析成sql:

select[t0].[productid], [t0].[productname], [t0].[supplierid], [t0].[categoryid], [t0].[quantityperunit], [t0].[unitprice], [t0].[unitsinstock], [t0].[unitsonorder], [t0].[reorderlevel], [t0].[discontinued]

from[dbo].[products]as[t0]

wherenot[t0].[categoryid]in(@p0, @p1)

**自:

標籤: linq to sql, in, ef

如何學習LINQ?

net language integrated query linq,語言整合查詢 是微軟公司提供的一項新技術。它能夠將查詢功能直接引入到.net framework 3.5所支援的程式語言 如c visual basic等 中。查詢操作可以通過程式語言自身來傳達,而不是以字串嵌入到應用程式 中。l...

linq實現左連線

1 左連線 var leftjoin from emp in listofemployees join dept in listofdepartment on emp.deptid equals dept.id into joinedempdept from dept in joinedempdep...

linq 實現動態 orderby

class pet public int age void main new pet new pet 如果我們想根據age進行排序 很容易想到這樣來寫 var query from p in pets orderby p.age select p query.tolist foreach q con...