五、令人心动的LINQ
您想过在代码中不写SQL语句就实现对数据库的操作么?当然,笔者并不是指那种通过拖拽数据源控件如SQLDataSource等然后加个GridView或者FormView就去实现对数据的显示、更新的操作。假如有一种工具能够让将我们数据库中的表映射为对象,而且映射这一工作能够自动完成,然后我们就可以通过对这些映射过来的对象进行操作,从而实现对数据表的操作了。
正如笔者上面所说,想法有了,就可以实现。事实上,LINQ并不是属于C#的,更不能说是C#3.5的特性了。不过笔者在这里提出,主要是因为它实在太令人兴奋而且C#3.5中的编程如果没有了对LINQ的使用代码就会逊色许多。
上述两段作为您的"开胃菜",仅令您心动是远远不够的,让我们近距离接触一下LINQ--语言集成查询(Language Integerated Query)。
笔者以LINQ对数据库的操作来对LINQ做一下大概的介绍。
LINQ to SQL 是O/RM(对象关系映射)在.NET Framework(Visual Studio 2008)中的一种实现,它允许你用.NET 的类来生成一个关系型的数据库。然后你可以用LINQ对数据库进行查询、更新、插入、删除操作。
LINQ to SQL完全支持事务,视图和存储过程。它还提供了一种方便地在你的数据模型中对集合数据验证和业务逻辑规则的进行验证的方法。
它的基本语法from… in..select是显得如此优雅,令我不得不为其用如此简洁的代码实现我们以往需要写数行甚至数十行才能够实现的功能感到兴奋。还记得我们在上面介绍"=>"lambda表达式时提供的那个小例子么?

这就是最简单的LINQ实现。其中customers可以是我们从数据库中映射过来的对象,也可以是我们自己定义的某类的实例。它实现的功能是从customers对象实例中查找出所有的Address为Heze的实例,返回值IEnumerable<Customer>类型。LINQ可以实现对所有实现了IEnumerable接口的对象进行查询
事实上,LINQ不仅可以to DataSet,也不仅可以to SQL,也不仅可以to XML,笔者认为,LINQ是可以to Everything的。
六 结语
以上仅仅是给笔者很大触动并且打动了笔者心的若干功能的一部分,限于篇幅笔者不能一一进行展开,望读者见谅。笔者将在后续的文章中与您分享更多的知识与经验。
相关专题
- 数据结构(C#)_排序算法(冒泡排序) (44次浏览)
- C#基础概念二十五问 (34次浏览)
- C#多线程学习—生产者和消费者 (33次浏览)
- 在C#.net中操作XML实例 (28次浏览)
- 截取字符串方法总结 (24次浏览)
- C#WIN窗体读取EXCEL存入SQL数据库 (24次浏览)
- C#与数据结构 (24次浏览)
- C#创建简单的验证码 (22次浏览)
- C#正则表达式整理备忘 (21次浏览)
- 用C#生成不重复的随机数 (21次浏览)



