[转]Linq 如何实现 in 与 not in
本文转自:http://blog.csdn.net/zhangyumei/article/details/5620363
接触 LINQ 也有很长的一段时间了,有些在 SQL 语句中用的很顺手的东西在 Linq 中却不知道如何实现了,最近遇到了一个问题,在 LINQ 的 Where 条件式中要如何使用 IN 与 NOT IN 呢? 这时候真的开始怀念 T-SQL 其实还是最好用的。为了让自己日后开发时更为方便,于是花了一点时间,参考一些网络资料及 MSDN 后,得到以下的测试結果:
T-SQL的IN:
Select
ProductID, ProductName, CategoryID
From
dbo.Products
Where
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)
最新文章
- 【大数据技巧】日均2TB日志数据在线快速处理之法
- 构建自己的PHP框架--定义ORM的接口
- C++ default 和delete的新用法
- NineOldAndroid开源库简单使用demo
- 使用hessian+protocol buffer+easyUI综合案例--登陆
- Android线程池(二)
- Grid分组特性
- WPA/WAP2wifi 密码破解笔记
- IClassSchemaEdit修改要素类信息
- 存储过程——在LINQ中使用(六)
- poj 2828 Buy Tickets (线段树(排队插入后输出序列))
- Linux 内核优化
- POJ 3254 Corn Fields(状态压缩)
- 10-ajax技术简介
- PAT甲级1034 Head of a Gang【bfs】
- centos7.3安装Nginx
- sqlite数据库下载安装和初步操作和所遇到的问题near &;quot;sqlite3&;quot;:syntax error
- springboot-3-aop
- zabbix最新版3.4搭建(根据官方文档适当修改)
- 搭建Spring开发环境并编写第一个Spring小程序