在向大家详细介绍LINQ Customers之前,首先让大家了解下 LINQ 究竟是什么,然后全面介绍LINQ Customers。
LINQ 究竟是什么?
LINQ,全名叫 Language INtegrated Query,它把查询(Query)和设置(set operations)等操作封装起来,就像.NET语言里如 C# 或 VB ***实现的 SQL statements 查询语句一样。
Query 表达式,也就是你所熟悉并热衷于使用的 SQL 语法如“from”、“where”和“select”等以及其他 C# 和 VB 里***实现的查询语法。不仅如此,Query 表达式还可用于跨应用领域查询数据。在下面的例子中,示范如何查询对象数据(Objects),就如同查询数据库(Database)中的数据一样容易。
用LINQ编写的代码是什么样子呢?
下面的例子示范查询一个string数据列表(list),并返回长度为 5 的 string 数据。
- using System;
- using System.Query;
- using Danielfe;
- class Program
- {
- static void Main(string[] args)
- {
- string[] aBunchOfWords = {"One","Two", "Hello",
- "World", "Four", "Five"};
- var result =
- from s in aBunchOfWords // query the string array
- where s.Length == 5 // for all words with length = 5
- select s; // and return the string
- //PrintToConsole is an Extension method that prints the value
- result.Print();
- }
- }
LINQ 的奇妙之处在于你可以用它来查询任何数据。下面的例子示范从 SQL Server 2005 中查询所有 Title 长度为 5 的 Customer 数据:
- using System;
- using System.Query;
- using Danielfe;
- using System.Data.DLinq; //DLinq is LINQ for Databases
- using nwind; //Custom namespace that is tool generated
- class Program
- {
- static void Main(string[] args)
- {
- Northwind db = new Northwind("Data Source=(local);
- Initial Catalog=Northwind;Integrated Security=True");
- Table<Customers> allCustomers = db.GetTable<Customers>();
- var result =
- from c in allCustomers
- where c.ContactTitle.Length == 5
- select c.ContactName;
- result.Print();
- }
- }
LINQ Customers类是一个可以让你的程序访问的对应于数据库表(table) 结构的自动生成的类。上面代码的前两行是建立一个数据库连接并获取LINQ Customers表的数据,下一行是查询所有 ContactTitle 的字符串长度为 5 的LINQ Customers并返回其 ContactName 数据,再输出到屏幕。
简单的说,LINQ 可以通过一个统一的标准的方式(类似 SQL 查询语句)很轻松的访问任何一种数据源。
【编辑推荐】