LINQ to SQL的Table剖析
在向大家詳細介紹LINQ to SQL Table之前,首先讓大家了解下LINQ的4大組件,包括介紹復(fù)合式LINQ。
LINQ(Language-Integrated Query,語言集成查詢),是隨.Net Framework3.5發(fā)布的微軟的一項新技術(shù)。她的查詢操作可以通過編程語言自身來傳達,而不是像以往的查詢那樣通過字符串嵌入到應(yīng)用程序代碼中。
LINQ包含4大組件,也就是她的4大功能了:
1、LINQ to Objects 處理對象、集合數(shù)據(jù)即我們可以在程序中通過類試與,像我們在數(shù)據(jù)庫中通過SQL語句來對Table進 行查詢的方式一樣,來查詢我們的對象或集合;
2、LINQ to SQL 關(guān)系數(shù)據(jù)查詢即對數(shù)據(jù)庫的查詢基本可以實現(xiàn)和ADO一樣的功能,但與其相比操作更加簡單,過程更加集中,尤其對數(shù)據(jù)表或?qū)ο筮M行查詢時,可以說有在數(shù)據(jù)庫中操作的感覺;
3、LINQ to DataSet 查詢DataSet對象數(shù)據(jù) 她針對任何形式的數(shù)據(jù)源都提供了統(tǒng)一的查詢方式,統(tǒng)一的語法,所以針對DataSet也是一樣,是我們可以非常方便的操作DataSet;
4、LINQ to XML 針對XML形式的數(shù)據(jù),LINQ給出了更為簡便的查詢,使我們操作XML可以像操作Table一樣得心應(yīng)手。
LINQ是一種查詢技術(shù),由微軟提供,她的***亮點就是,就是將查詢操作集成到開發(fā)環(huán)境中,成為開發(fā)語言的一部分,我們可以像寫代碼一樣來創(chuàng)建查詢操作或表達式。
學到這腦中突現(xiàn)一個想法,"我是否可以將LINQ to SQL Table與LINQ to XML的XElement join起來?"理論上,在LINQ的設(shè)計概念中,這是可行的。
- static void TestCrossLinq()
- {
- NORTHWND db = new NORTHWND
("Data Source=.\\SQLEXPRESS;Initial Catalog=NORTHWND;Integrated Security=True");- XDocument doc = XDocument.Load("XMLFile1.xml");
- var p = from s1 in doc.Elements("tables").Elements("table").Descendants("row")
- join s2 in db.Customers on s1.Element("CUSTOMER_ID").Value equals s2.CustomerID
- where s1.Parent.Attribute("name") != null &&
- s1.Parent.Attribute("name").Value == "Orders"
- select new XElement("Order", s1.Nodes(), new XElement("CompanyName",s2.CompanyName));
- foreach (var item in p)
- {
- foreach (var item3 in item.Elements())
- {
- Console.WriteLine("{0} : {1}", item3.Name, item3.Value);
- Console.WriteLine("--------------------");
- }
- }
- Console.ReadLine();
- }
此程式由XML中讀出Order資訊,以其CUSTOMER_ID Element中的資料來與Linq To SQL Table : Customers join,取出CompanyName欄位放入結(jié)果集。
【編輯推薦】