欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


unity3d怎么连接sql server数据库?
Xen、KVM、VMware、hyper-v等虚拟化技术的对比
Unity3D在使用上有哪些优点?
windows和linux、Mac系统换行规则的区别
错误1075:依存服务不存在或已标记为删除的解决方法
Linux信号列表详解
IIS 关闭HTTPERR的方法
IIS报错试图加载格式不正确的程序集解决办法
Linux系统下使用U盘的技巧
Linux中使用cgroups控制内存
什么是linq技术?
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上。 借助于 LINQ,查询现在已是高级语言构造,就如同类、方法、事件等等。

(1)什么是linq技术?

这个是在《ASP.NET高级程序设计第四版》第一章节中讲解asp.net版本中有关于该技术的起源背景,linq是asp.net 3.5 中跟AJAX一起在原来2.0版本上引入的一项新技术。

接下来是13章节中的一些知识点结合我自己的理解,其中我自己也存在两点疑惑,如果有精通的希望能指导一番,哈哈,进入正题:

linq:缩写是language integrated query 语言集成查询,是一项操作内存数据的技术,看完一个小节,感觉跟sql查询的区别就是它可以将一些数据类对象执行查询过滤,返回自己请求的数据,也即是说它既可以实现c#源代码环境中的对象数据查询,也可以实现关系数据库数据访问。

linq技术为我们开发人员提供了五个比较实用的数据访问类型:

LinQ to Object:可以允许对内存中的类对象查询。

LinQ to DataSet:可以对内存中的DataSet缓存数据,执行数据访问。

LinQ to xml :针对XML数据的一种解析封装可以实现传统xml解析效果。

LinQ to Entity:这是目前linq技术比较流行的一个亮点了,它提供了对关系数据库的数据访问,可以使得开发者不必通过编写负责ADO.NET的数据访问层就可以实现数据库访问,也可以两者一起结合使。LinQ相对ADO.NET的优势在哪里呢?它真的有ADO.NET如此强大的数据访问功能呢?这是我今天的第一个疑问,或许还需要后面的学习才能搞明白了。

LinQ to SQL:这个由于只限制sql server数据库,所以目前已经被LinQ to Entity逐渐取代。

(2)LinQ技术如何开发实现?

LinQ表达式:与我们查询数据需要编写SQL语句一样,是使用它自然需要一个”语句“,就是linq表达式,而且同sql语句一样也有它自己的语法规则。它也有与SQL语句中类似的一些关键字:select where orderby 已经groupby在语法上面也很相似。一会儿在我自己的验证实例中,会对这个做一个例子说明。

LinQ表达式返回值必须是一个实现了IEnumerable<T>的迭代对象。

对迭代对象进行枚举时,linq执行它的工作。

(3)关于linQ的延迟执行:linQ表达式中关于执行返回的过程,书中描述的延迟执行的特点,只是说了可能根据解析类型的不同,linQ可能是一次执行完也可以是在进行迭代的过程中逐步执行。但是还是对这个概念很模糊,这是我的第二个疑问,还需要深入学习的时候回顾。

(4)LinQ表达式的几大核心特点:为了更易于理解以下的部分将会以自己之后的程序验证来举例讲解其中的特点

我先定义了数据类:

 

//定义数据类
    public class mytestData {        public int studentid { set; get; }//list绑定GridView列表属性不能为只读否则报错。
       public string name { set; get; }        public int age{set;get;} 
       public mytestData(int id, string name, int age)
        {            this.studentid = id;            this.name = name;            this.age = age;
        }
       
    }

 

在页面page_load中初始化测试数据,原本想了想既然是查询对象数据集合,那就定义一个ArrayList装载自己的定义的数据类,在编写LinQ表达式的时候发现了一个问题:

自定义的数据类容器需要有查询模式的实现,所以也就是说LinQ是支持一部分数据类型的查询。。。。

什么是linq技术? 三联

 解决办法就是采用List类型:

 

  List<mytestData> mydata = new List<mytestData>();

 

先来看一个linq表达式的简单例子:

 

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号