LINQ to SQL全稱基于關系數(shù)據(jù)的.NET語言集成查詢绿映,用于以對象形式管理關系數(shù)據(jù),并提供了豐富的查詢功能淆院。Linq中where查詢與SQL命令中的Where作用相似薄风,都是起到范圍限定也就是過濾作用的,而判斷條件就是它后面所接的子句竹观。
一镐捧、LINQ的基本語法包含如下的8個上下文關鍵字,這些關鍵字和具體的說明如下:
關鍵字 | 說明 |
---|---|
from | 指定范圍變量和數(shù)據(jù)源 |
where | 根據(jù)bool表達式從數(shù)據(jù)源中篩選數(shù)據(jù) |
select | 指定查詢結果中的元素所具有的類型或表現(xiàn)形式 |
group | 對查詢結果按照鍵值進行分組(IGrouping<TKey,TElement>) |
into | 提供一個標識符栈幸,它可以充當對join愤估、group或select子句結果的引用 |
orderby | 對查詢出的元素進行排序 |
where子句,它是LINQ表達式的元素篩選機制速址,除了開始和結束的位置玩焰,它幾乎可以出現(xiàn)在LINQ表達式的任意位置上。
在一個LINQ表達式中芍锚,可以有where子句昔园,也可以沒有蔓榄;可以有一個,也可以有多個默刚;多個where子句之間的邏輯關系相當于邏輯“與”甥郑,每個where子句可以包含1個或多個bool邏輯表達式,這些條件成為謂詞荤西,謂詞邏輯之間用的是“&&”“||”等而不是SQL中的and 澜搅、or。
二邪锌、Where操作包括3種形式勉躺,分別為簡單形式、關系條件形式觅丰、First()形式饵溅。
下面分別用實例舉例下:
1.簡單形式:
var q =
from c in db.Customers
where c.City == "London"
select c;
2.關系條件形式:
篩選庫存量在訂貨點水平之下但未斷貨的產品:
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);
3.First()形式:
返回集合中的一個元素妇萄,其實質就是在SQL語句中加TOP
簡單用法:選擇表中的第一個發(fā)貨方蜕企。
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);
文件比對程式:
List<FileInfo> fileInfo1 = info1.GetFiles(".", SearchOption.TopDirectoryOnly).Where(file => strExtention.Contains(file.Extension)).ToList();