文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linq有什么作用

2023-06-17 21:27

关注

本篇内容主要讲解“Linq有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linq有什么作用”吧!

学习Linq

在我们的软件中,数据的重要性不可言喻,特别是象ERP,CRM等等这类商业应用软件就是围绕着数据转;然而数据的来源各种各样,如存放在内存中的业务对象、存放在xml文件的数据、SqlServer关系数据库...这些数据源的读取操作各不相同,相互之间的转换也不是那么容易;为此VS.Net提供了各种技术来支持这些数据源的操作,如操作数据库的ADO.Net,操作xml文件的API(XmlDocument, XmlReader, XPathNavigator等),以及一些存放在内存中的数据的操作(数组,参数变量,类,泛型等等);如今在C#3.0中提供了一种新技术来整合处理各种数据操作的问题,这就是Linq;

Linq目标是实现语言与数据的深度结合,Linq以统一的数据访问方式访问各种数据源,以相同的方式读取数据,象SQL语句一样进行查询,而这些都是整合在我们熟悉的编程语言如C#,VB当中,另外Linq是使用强类型,并提供编译时检查和VS的智能感知特性等。

下面我们以SQLServer为数据源,列举一段代码分析一下:

  1. // ADO.NET中我们会用它提供的SqlConnection, SqlCommand, 
    SqlDataAdapter,SqlReader, DataSet, 和 DataTable等来访问操作数据库 ;  

  2. //使用SqlDataAdapter填充DataSet  

  3. using (SqlConnection conn = new SqlConnection(""))  

  4. {  

  5. DataSet ds = new DataSet();  

  6. SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers", conn);  

  7. da.Fill(ds);  

  8. }  

  9.  //使用SqlDataReader读取数据  

  10. using (SqlConnection connection = new SqlConnection(""))  

  11. {  

  12.  

  13. connection.Open();  

  14. SqlCommand command = connection.CreateCommand();  

  15. command.CommandText = @"SELECT Name, Country FROM Customers WHERE City = @City";  

  16. command.Parameters.AddWithValue("@City", "Paris");  

  17.  

  18. using (SqlDataReader reader = command.ExecuteReader())  

  19. {  

  20. while (reader.Read())  

  21. {  

  22. string name = reader.GetString(0);  

  23. string country = reader.GetString(1);  

  24.  

  25. }  

  26. }  

  27. }

这段代码中,我们只是一个简单的数据读取,不管是使用SqlDataAdapter还是SqlDataReader都会碰到一些问题:

如果直接在代码里写语句,不能确保语句的正确性,连基本的SQL语句的关键字也不能保证是否书写正确;而在Linq中把一些常用的关键字如Select、from、where等写成扩展方法,确保在编译时提供语句的验证;

查询时使用的参数,和查询返回的结果都是弱类型,而在我们面向对象编程中希望能使用强类型来确保我们程序的正确,这样就需要很多的辅助判断来确保我们传入的参数和得到的结果是符合相应的类型要求;而我们在Linq使用的都是强类型,可以避免这些多余的判断,确保程序能得到编译器的验证,不会等到运行时才捕获到错误;

***的问题是,这段代码只适合SQLServer使用,如果使用其它数据库(Oracle,MySQL...),或者其它数据源(xml,文本文件...)就会改动较大,或者重新写方法才能使用,而使用Linq可以有效避免这些问题。

到此,相信大家对“Linq有什么作用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯