您的位置:首页 > 数据库

LINQ系列:LINQ to SQL Exists/In/Any/All/Contains

2017-07-02 11:51 435 查看
1. Any

  返回没有Product的Category

var expr = from c in context.Categories
where !c.Products.Any()
select c;


SELECT
[Extent1].[CategoryID] AS [CategoryID],
[Extent1].[CategoryName] AS [CategoryName]
FROM [dbo].[Category] AS [Extent1]
WHERE  NOT EXISTS (SELECT
1 AS [C1]
FROM [dbo].[Product] AS [Extent2]
WHERE [Extent1].[CategoryID] = [Extent2].[CategoryID]
)


var expr = from c in context.Categories
where !c.Products.Any(p => p.UnitPrice > 10m)
select c;


SELECT
[Extent1].[CategoryID] AS [CategoryID],
[Extent1].[CategoryName] AS [CategoryName]
FROM [dbo].[Category] AS [Extent1]
WHERE  NOT EXISTS (SELECT
1 AS [C1]
FROM [dbo].[Product] AS [Extent2]
WHERE ([Extent1].[CategoryID] = [Extent2].[CategoryID]) AND ([Extent2].[UnitPrice] > cast(10 as decimal(18)))
)


2. All

var expr = from c in context.Categories
where c.Products.All(p => p.Discontinued)
select c;


SELECT
[Extent1].[CategoryID] AS [CategoryID],
[Extent1].[CategoryName] AS [CategoryName]
FROM [dbo].[Category] AS [Extent1]
WHERE  NOT EXISTS (SELECT
1 AS [C1]
FROM [dbo].[Product] AS [Extent2]
WHERE ([Extent1].[CategoryID] = [Extent2].[CategoryID]) AND ([Extent2].[Discontinued] <> cast(1 as bit))
)


3. Contains

var expr = from p in context.Products
where new string[]
{
"LINQ to Object",
"LINQ to ADO.NET",
"LINQ to XML"
}
.Contains(p.ProductName)
select p;


SELECT
[Extent1].[ProductID] AS [ProductID],
[Extent1].[CategoryID] AS [CategoryID],
[Extent1].[ProductName] AS [ProductName],
[Extent1].[UnitPrice] AS [UnitPrice],
[Extent1].[UnitsInStock] AS [UnitsInStock],
[Extent1].[Discontinued] AS [Discontinued]
FROM [dbo].[Product] AS [Extent1]
WHERE [Extent1].[ProductName] IN (N'LINQ to Object', N'LINQ to ADO.NET', N'LINQ to XML')


var expr = from p in context.Products
where !(new string[]
{
"LINQ to Object",
"LINQ to ADO.NET",
"LINQ to XML"
})
.Contains(p.ProductName)
select p;


SELECT
[Extent1].[ProductID] AS [ProductID],
[Extent1].[CategoryID] AS [CategoryID],
[Extent1].[ProductName] AS [ProductName],
[Extent1].[UnitPrice] AS [UnitPrice],
[Extent1].[UnitsInStock] AS [UnitsInStock],
[Extent1].[Discontinued] AS [Discontinued]
FROM [dbo].[Product] AS [Extent1]
WHERE  NOT ([Extent1].[ProductName] IN (N'LINQ to Object', N'LINQ to ADO.NET', N'LINQ to XML'))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐