LInq是Language Integrated Query的简称,它是微软在.net framework 3.5里面新加入的特性,用以简化查询查询操作。它主要包含了3块,Linq to Object、Linq to SQL、Linq to XML,其中Linq to Object和对于对象的查询,Linq to XML则又提供了对XML格式数据的检索、设置等功能,其中值得关注的Linq to SQL是我们要重点掌握的,因为它改变了我们传统的对于SQL操作的认识。
一、Linq to Object
先上一段代码:
注意Linq to Object的语法,from c in contries select c ; // 这里的c任意起名,in后面的contries 为数组对象或者是列表、集合等对象,select c 与前面的c保持一致。这是Linq强大的地方,试想我们以前要想查询数组里面的每一个元素要写一层for循环然后循环输出。这里似乎看不出什么明显优势的地方,我们继续往下看。
我们会发现利用linq可以很容易的像利用sql语句一样查询、排序,如果利用原始的技术可能要多些好几行代码!
再举个例子。
我在里面给出了解答,当然了里面的List完全可以是从数据库中获取,我简单模拟了一下,代码如下。
定义1个实体类:
然后在Main函数中输入:
可以得到分组统计的结果。
二、Linq to SQL
这是Linq技术的重头戏,当然现在有了EntityFramework等技术,但是我们还是可以关注一下。
我们新建两张表,很简单。
然后在项目中新建一个Linq to SQL类,切换到设计界面。同时打开服务资源管理器,添加数据连接,连接到数据库。拖动classInfo和studentInfo两张表到Linq to SQL类文件的设计界面,我们会发现关系替我们都准备的好好的。
OK,这时就可以写相应代码,进行添加操作了。
这样就添加了1条班级记录和1条学生记录。
如果我们要删除一条学生记录怎么办?举个例子,键入如下代码:
这样就把liming这个学生记录给删除了,很简单吧?
好,现在我们修改这个学生记录,把名字改成zhang3。
补充一点很重要的,就是如何用linq to sql来进行查询操作。
前面的Single其实就是一种查询操作,返回单个对象。
直接上一个linq带条件的分页查询实例:
三、Linq to XML
1、创建XML
你会发现,你只要记住XElement这一个核心类就可以使用Linq创建xml,而且编码的方式很轻松,就是在表达一个xml的层级关系。
效果如下:
2、查询XML
还是用上面生成的XML来做测试,键入如下代码:
输出:010-99599。
四、Linq to DataTable
意思跟Linq to Object是一样的,应该属于Linq to Object的范畴,这里单独拿出来,分享一下。
先构造两个DataTable。
然后我们通过Linq to DataTable进行合并。
效果图下: