LINQ to SQL 语句(1)之 Where
Where 操作
适用场景:实现过滤,查询等功能。
说明:与 SQL 命令中的 Where 作用相似,都是起到范围限定也就是过滤作用的 ,而判断条
件就是它后面所接的子句。
Where 操作包括 3 种形式,分别为简单形式、关系条件形式、First()形式。下 面分别用实例
举例下:
1.简单形式:
例如:使用 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;
2.关系条件形式:
筛选库存量在订货点水平之下但未断货的产品:
var q =
from p in db.Products
where p.UnitsInStock <= p.ReorderLevel && ! p.Discontinued
select p;
筛选出 UnitPrice 大于 10 或已停产的产品:
var q =
from p in db.Products
where p.UnitPrice > 10m || p.Discontinued
select p;
下面这个例子是调用两次 where 以筛选出 UnitPrice 大于 10 且已停产的产品。
var q =
db.Products.Where(p=>p.UnitPrice > 10m).Where (p=>p.Discontinued);
3.First()形式:
主要用于MVC中
返回集合中的一个元素,其实质就是在 SQL 语句中加 TOP (1)。
简单用法:选择表中的第一个发货方。
Shipper shipper = db.Shippers.First();
元素:选择 CustomerID 为“BONAP”的单个客户
Customer cust = db.Customers.First(c => c.CustomerID == "BONAP");
条件:选择运费大于 10.00 的订单:
Order ord = db.Orders.First(o => o.Freight > 10.00M);