- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10_第10章Linq数据访问技术解读
第十章 Linq数据访问技术 -*- 掌握LINQ查询的特点及组成 掌握编写Lambda表达式 掌握LINQ查询方法的使用 掌握使用LINQ查询SQL数据库 目标 -*- LINQ简介 LINQ(Language Integrated Query)是语言集成查询的简称,是Visual Studio 2008和.NET Framework 3.5中一项突破性的创新。是一个编程模型,提供统一的方法访问文件、XML、数据库等数据。 LINQ有4部分组成:LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML。 -*- LINQ查询 所有LINQ查询操作都有如下3个步骤: 获取数据源:指定数据源是数据库、XML还是普通的集合; 创建查询:根据用户要求和LINQ的查询语法,设置查询语句; 执行查询:从指定的数据源中找到符合条件的数据。 //1.获取数据源 int[] numbers = new int[] { 3, 20, 47, 6, 9, 8, 81 }; //2.创建查询 var numQuery = numbers.Where(p = p % 2 != 0).Select(p = p); //3.执行查询 foreach (int num in numQuery) { Console.Write(num + ); } -*- Lambda表达式-1 Lambda表达式是一个匿名方法,它可以包含表达式和语句 (参数列表) = {方法体} 参数列表中的参数都是匿名方法的输入参数,这些参数可以是明确类型或者是推断类型,如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来。 =是Lambda运算符,该运算符读为“goes to”,与赋值运算符(=)具有相同的优先级,并且是右结合运算符。 方法体可以是单一的表达式,或多条语句组成的语句块。 -*- Lambda表达式-2 Lambda示例:一个多参数、方法体多语句的Lambda表达式示例 。 (x, y) = { Console.WriteLine( x ); Console.WriteLine( y ); } 如果参数列表只包含一个推断类型参数时,Lambda表达式可以简化成下面格式。 参数名 = {方法体} p = {return p+1;} 如果方法体只包含一条语句时,Lambda表达式又可以简化成下面格式 。 参数名 = 表达式 p = p+1 -*- Lambda表达式-3 //1.获取数据源 int[ ] numbers = new int[] { 8, 20, 47, 102, 14, 86, 128 }; //2.创建查询,使用Lambda表达式对数据进行筛选 var numQuery = numbers .Where(p = p 10 p 100) .Where(p = p % 2 == 0) .Select(p = p); //3.执行查询 foreach (int num in numQuery) { Console.Write(num + ); } 示例:使用Lambda表达式筛选出数组中的大于10小于100的偶数。 -*- LINQ查询方法 LINQ查询存在两种方式: 查询方法:主要利用System.Linq.Enumerable类中定义的扩展方法和Lambda表达式进行查询,语法简洁并能完成一些复杂的查询操作,但可读性差。 查询语句:一种更接近SQL语法的查询方式,具有更好的可读性。 LINQ查询方法中提供了一些标准查询方法,如:Select()、Where()、OrderBy()等;还提供一些高级的查询方法,如:Count()、Skip()、Range()等。 -*- Select()-1 Select()查询方法用于选取数据,其语法格式如下: public static IEnumerableTResult SelectTSource, TResult ( this IEnumerableTSource source, FuncTSource, TResult selector ) Select方法本身是一个泛型扩展方法,作用于IEnumerableTSource类型。 Select()方法的参数是FuncTSource, TResult类型,FuncTSource, TResult是一个泛型委托,位于System命名空间下System.Core.dll中。 selector是一个提取器。 -*- Select()-2 //1.获取数据源 string[] names = new string[] { Tom,Rose
文档评论(0)