WHERE 子句// 倫敦客戶
var q = from c in db.Customers
where c.City == "London"
select c;
// 1994 年後入職員工
var q = from e in db.Employees
where e.HireDate >= new DateTime(1994, 1, 1)
select e;
// 庫存 ≤ 訂貨點 且 未斷貨
var q = from p in db.Products
where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued
select p;
// 單價 > 10 或 已停產
var q = from p in db.Products
where p.UnitPrice > 10m || p.Discontinued
select p;
// 鏈式 Where (等價於 AND)
var q = db.Products
.Where(p => p.UnitPrice > 10m)
.Where(p => p.Discontinued);
// 第一個發貨商
Shipper shipper = db.Shippers.First();
// 指定客戶
Customer cust = db.Customers.First(c => c.CustomerID == "BONAP");
// 條件匹配第一筆
Order ord = db.Orders.First(o => o.Freight > 10.00M);
First() 立即執行,生成 SELECT TOP 1 ...。無匹配拋異常,可用 FirstOrDefault() 返回 null。
兩者等價,Lambda 更適合鏈式調用 (Where().Where().Select()),查詢語法更接近 SQL 閱讀習慣。
>= start && < end)