首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

LINQ to SQL 量詞與包含判斷:Any、All、Contains、Exists/In 模式完整指南

     編輯:關於.NET

Any:序列是否有元素滿足條件

立即執行。無條件時檢查序列非空;有條件時檢查是否存在符合項目。

簡單形式:無訂單的客戶

var q = from c in db.Customers where !c.Orders.Any() select c;

生成 SQL:WHERE NOT (EXISTS (SELECT ... FROM Orders WHERE CustomerID = c.CustomerID))

帶條件:至少有一產品停產的分類

var q = from c in db.Categories where c.Products.Any(p => p.Discontinued) select c;

生成 SQL:WHERE EXISTS (SELECT ... FROM Products WHERE Discontinued=1 AND CategoryID=c.CategoryID)

All:序列所有元素皆滿足條件

var q = from c in db.Customers where c.Orders.All(o => o.ShipCity == c.City) select c;

回傳所有訂單出貨城市等於客戶城市的客戶(含無訂單者)。

Contains:判斷序列是否包含特定元素(相當於 SQL IN)

基本用法:指定客戶 ID 清單

string[] ids = { "AROUT", "BOLID", "FISSA" };
var q = (from o in db.Orders where ids.Contains(o.CustomerID) select o).ToList();

也可內建陣列:where (new[] { "AROUT", "BOLID", "FISSA" }).Contains(o.CustomerID)。

包含單一物件:找出擁有特定訂單的客戶

var order = db.Orders.First(o => o.OrderID == 10248);
var q = db.Customers.Where(c => c.Orders.Contains(order)).ToList();

包含多值:指定城市清單

string[] cities = { "Seattle", "London", "Vancouver", "Paris" };
var q = db.Customers.Where(c => cities.Contains(c.City)).ToList();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved