NHibernate的五部曲(共4课时)].LinQ.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目标 掌握 LINQ 中的基本概念 理解扩展方法/Lambda 表达式 查询LINQ方法Select()/Where()/OrderBy()/GroupBy() 掌握LINQ语句 理解查询语句与查询方法的关系 掌握各种高级查询方法 理解 LINQ to SQL LINQ是什么 LINQ( Language Integrated Query )即语言集成查询 LINQ 主要包含以下三部分: LINQ to Objects 主要负责对象的查询 LINQ to XML 主要负责 XML 的查询 LINQ to ADO.NET 主要负责数据库的查询 LINQ to SQL LINQ to DataSet LINQ to Entities LINQ 的历史 最初由 Anders Hejlsberg 构思,最初的研究计划称为 Cω 2007年11月19日 – LINQ作为 .NET Framework 3.5 的一部分正式发布 LINQ要解决的问题 面向对象与数据访问两个领域长期分裂,各自为政 编程语言中的数据类型与数据库中的数据类型形成两套体系。 SQL 编码体验落后 SQL 和 XML 都有各自的查询语言,而对象没有自己的查询语言 LINQ 的组成 LINQ 初体验 扩展方法 Lambda表达式语法 最基本的 Lambda 表达式语法如下: 基本查询操作符-获取数据 Select() 基本查询操作符-过滤数据 Where() 基本查询操作符-排序数据 OrderBy() 基本查询操作符-分组数据 GroupBy() GroupBy() 例子 查询执行的时机 从前面的试验中,我们发现一次查询实际经过以下三步 查询执行的时机小结 查询分为以下三步:获取数据源、定义查询、执行查询; 定义查询后,查询直到需要枚举结果时才被真正执行,这种方式称为“延迟执行(deferred execution)”; 当查询方法返回单一值时,查询立即执行; 因此,可以通过以下技巧在定义查询时就强制执行查询; LINQ查询的两种方式 事实上,LINQ查询存在以下两种形式 Method Syntax, 查询方法方式 主要利用 System.Linq.Enumerable 类中定义的扩展方法和 Lambda 表达式方式进行查询 上一章的例子都是以这种方式查询 Query Syntax, 查询语句方式 一种更接近 SQL 语法的查询方式 可读性更好 查询语句vs查询方法 查询语句与查询方法存在着紧密的关系 CLR本身并不理解查询语句,它只理解查询方法 编译器负责在编译时将查询语句翻译为查询方法 大部分查询方法都有对应的查询语句形式:如 Select() 对应 select 、 OrderBy() 对应 orderby 部分查询方法目前在C#中还没有对应的查询语句:如 Count()和Max() 这时只能采用以下替代方案 查询方法 查询语句 + 查询方法的混合方式; 一般情况下,建议使用可读性更好的查询语句 高级查询方法 高级查询方法 聚合类 Count,Max/Min,Average 排序类 ThenBy 分区类 Take,TakeWhile,Skip,SkipWhile 集合类 Distinct 生成类 Range, Repeat 生成类查询方法小结 使用生成类查询方法时,需要注意以下几点: 和其他几类方法不同,Range/Repeat 不是扩展方法,而是普通的静态方法 Range 只能产生整数序列 Repeat 可以产生泛型序列 所有的查询方法都存放在 System.Linq.Enumerable 静态类中 LINQ to SQL 示例 LINQ 的更多资源 官方网站 /zh-cn/netframework/aa904594(en-us).aspx Hooked On LINQ / 本课程版权归北风网所有 欢迎访问我们的官方网站 The parameters of a lambda expression can be explicitly or implicitly typed. In an explicitly typed parameter list, the type of each parameter is explicitly stated. In an implicitly typed parameter list, the types of the parameters are inferred from the context in which the lambda expression occurs—specifically, when the lambda expression is converted to

文档评论(0)

白领文档(原创) + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档