LINQ to SQL 全称基于关系数据的.NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。 Linq 中 where 查询与 SQL 命令中的 Where 作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。
LINQ 的基本语法包含如下的 8 个上下文关键字,这些关键字和具体的说明如下
LINQ 中 where 查询
where 子句,它是LINQ 表达式的元素筛选机制,除了开始和结束的位置,它几乎可以出现在 LINQ 表达式的任意位置上。 在一个 LINQ表达式中,可以有where子句,也可以没有;可以有一个,也可以有多个;多个where子句之间的逻辑关系相当于逻辑“与”,每个 where子句可以包含 1 个或多个 bool 逻辑表达式,这些条件成为谓词,谓词逻辑之间用的是“&&”“||”等而不是 SQL 中的 and 、or。
Where 操作包括 3 种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下
关系条件形式:
筛选库存量在订货点水平之下但未断货的产品: var q = from p in db.Products where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued select p; 下面这个例子是调用两次 where 以筛选出 UnitPrice 大于 10 且已停产的产品。 var q = db.Products.Where(p=>p.UnitPrice > 10m).Where(p=>p.Discontinued);
First()形式:
返回集合中的一个元素,其实质就是在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)