LINQ - 在Where條件式中使用in與not in(转载)
2013-08-29 16:55
267 查看
算算時間,接觸LINQ也有一個月的時間了,可以算是落伍兼新生,不過最近在寫專案的時候,遇到了在LINQ的Where條件式中要如何使用in與 not in呢!? 這時候真的只能坐在位子上仰天長笑,開始懷念T-SQL其實你還是最好用滴。之後,為了讓自己日後開發時更為方便,於是花了一點時間,參考一些網路資料及 MSDN後,得到以下的測試結果:(以下以北風資料庫為範本)
T-SQL的IN:
T-SQL的NOT IN:
LINQ的IN:
LINQ的IN解析成SQL:
LINQ的NOT IN:
LINQ的NOT IN解析成SQL:
T-SQL的IN:
Select
ProductID, ProductName, CategoryID
From
dbo.Products
Where
not
CategoryID
in
(1, 2)
T-SQL的NOT IN:
Select
ProductID, ProductName, CategoryID
From
dbo.Products
Where
CategoryID
not
in
(1, 2)
or
Select
ProductID, ProductName, CategoryID
From
dbo.Products
Where
not
CategoryID
in
(1, 2)
LINQ的IN:
var queryResult = from p
in
db.Products
where (
new
int
?[] {1,2}).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 p
in
db.Products
where !(
new
int
?[] { 1, 2 }).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]
WHERE
NOT
([t0].[CategoryID]
IN
(@p0, @p1))
相关文章推荐
- LINQ - 在Where條件式中使用in與not in(转载)
- LINQ - 在Where條件式中使用in與not in
- LINQ - 在Where條件式中使用in與not in
- LINQ - 在Where條件式中使用in與not in
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)(转载)
- Silverlight使用LINQ、WCF访问SQL视图(转载于 银光中国)
- 使用linq to xml 快速创建自己的Rss -- 转载自 半途 blog
- 艾伟_转载:使用LINQ to SQL更新数据库(中):几种解决方案
- 转载Linq中GroupBy方法的使用总结
- Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:使用函数【转载】
- 艾伟_转载:使用LINQ to SQL更新数据库(上):问题重重
- 艾伟_转载:数据库设计与Linq增强使用
- [转载]EF或LINQ 查询时使用IN并且根据列表自定义排序方法
- SQL Server 2008使用LINQ进行数据访问(转载自IT168 [ http://www.it168.com/ ])
- 在.NET使用JSON作为数据交换格式(转载)
- 【转载】第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
- 在vc++中使用内联汇编(转载)
- [转载]在Eclipse3.1中如何使用Lomboz3.1开发struts
- C# 使用LINQ、泛型、Index函数优化switch(或者多条if)语句
- (转载)freopen()函数在ACM中的使用