LINQ有很多值得学习的地方,这里我们主要介绍LINQ to SQL Table,包括介绍LINQ的核心概念等方面。
近日开始写有关于LINQ的文章,正巧写到Linq To SQL,由于探索LINQ的核心概念所致,脑中突现一个想法,"我是否可以将LINQ to SQL Table与LINQ to XML的XElement join起来?"
理论上,在LINQ的设计概念中,这是可行的.
- 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栏位放入结果集.
【编辑推荐】