適用場景:用於判斷集合中元素,進一步縮小範圍。數組
說明:用於判斷集合中是否有元素知足某一條件;不延遲。(若條件爲空,則集合只要不爲空就返回True,不然爲False)。有2種形式,分別爲簡單形式和帶條件形式。spa
僅返回沒有訂單的客戶:code
var q = from c in db.Customers where !c.Orders.Any() select c;
生成SQL語句爲:對象
SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] WHERE NOT (EXISTS( SELECT NULL AS [EMPTY] FROM [dbo].[Orders] AS [t1] WHERE [t1].[CustomerID] = [t0].[CustomerID] ))
僅返回至少有一種產品斷貨的類別:blog
var q = from c in db.Categories where c.Products.Any(p => p.Discontinued) select c;
SELECT [t0].[CategoryID], [t0].[CategoryName], [t0].[Description], [t0].[Picture] FROM [dbo].[Categories] AS [t0] WHERE EXISTS( SELECT NULL AS [EMPTY] FROM [dbo].[Products] AS [t1] WHERE ([t1].[Discontinued] = 1) AND ([t1].[CategoryID] = [t0].[CategoryID]) )
說明:用於判斷集合中全部元素是否都知足某一條件;不延遲ip
var q = from c in db.Customers where c.Orders.All(o => o.ShipCity == c.City) select c;
語句描述:這個例子返回全部訂單都運往其所在城市的客戶或未下訂單的客戶。ci
說明:用於判斷集合中是否包含有某一元素;不延遲。它是對兩個序列進行鏈接操做的。string
string[] customerID_Set = new string[] { "AROUT", "BOLID", "FISSA" }; var q = ( from o in db.Orders where customerID_Set.Contains(o.CustomerID) select o).ToList();
語句描述:查找"AROUT", "BOLID" 和 "FISSA" 這三個客戶的訂單。先定義了一個數組,在LINQ to SQL中使用Contains,數組中包含了全部的CustomerID,即返回結果中,全部的CustomerID都在這個集合內。也就是in。 你也能夠把數組的定義放在LINQ to SQL語句裏。好比:產品
var q = ( from o in db.Orders where ( new string[] { "AROUT", "BOLID", "FISSA" }) .Contains(o.CustomerID) select o).ToList();
Not Contains則取反:it
var q = ( from o in db.Orders where !( new string[] { "AROUT", "BOLID", "FISSA" }) .Contains(o.CustomerID) select o).ToList();
1.包含一個對象:
var order = (from o in db.Orders where o.OrderID == 10248 select o).First(); var q = db.Customers.Where(p => p.Orders.Contains(order)).ToList(); foreach (var cust in q) { foreach (var ord in cust.Orders) { //do something } }
語句描述:這個例子使用Contain查找哪一個客戶包含OrderID爲10248的訂單。
string[] cities = new string[] { "Seattle", "London", "Vancouver", "Paris" }; var q = db.Customers.Where(p=>cities.Contains(p.City)).ToList();
語句描述:這個例子使用Contains查找其所在城市爲西雅圖、倫敦、巴黎或溫哥華的客戶。