第五章 深入浅出谈LINQ.pdfVIP

  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 LINQ 深入浅出谈LLIINNQQ 引子:案例 某君被邀为一超市设计数据库,用来存储数据。该君根据该超市中实际出现的对象,设计了 Customer,Employee,Order,Product 等表,用来保存相应的客户,员工,订单,货品等。太 好了,该君很有oo的思想吗。 如果,你被要求用类及对象,来描述该关系型数据,你该如何做呢?在linq 推出之前, ADO.NET被用来做数据访问层。而后,程序员需要自己去编写事务逻辑层中所出现的类。 比如,Customer, Employee,Order, Product 等。然后,程序员组装所需的sql 语句,通过 ADO.NET,将返回的记录,来初始化Customer 等类的对象。在这里,你已经自己动手将 Customer 表和Customer 类关联了起来。从Linq To Sql 的设计来看,它主要是为了解决 data!=objects 的问题而产生的。现在,有了Table 和Class 之间的映射,数据和对象之间就 可以有一个一一对应的关系了。 在 Linq To Sql 之前,在 java 领域有 Hibernate,在net 领域有 NHibernate 技术,来实现 object/relational 持久和查询服务。无论是Hibernate 还是NHibernate,其配置复杂,上手时 间长,已经不能适应快速开发的需要。而LinqTo Sql 的推出,恰恰弥补了它们的缺点,彻 底降低了程序开发门槛。 LINQ,语言级集成查询(Language IntegratedQuery) 经过了最近 20 年,面向对象编程技术( object-oriented (OO)programming technologies)在工 业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像类(classes)、对象 (objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的 重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据 ( accessingand integrating information )的复杂度的问题。其中两个最主要访问的数据源与数 据库和 XML 相关。 LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sourcesof information )的具有多种用途( general-purpose)的语法查询特性( query facilities ), 这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特 性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。 LINQ 在开发中的地位 DLINQ *.dbml 文件该属于哪一层,的确Linq toSql 存在问题,DLINQ 中,虽然可以在语言 层级定义查询逻辑。但是依然没有将数据库持久化数据映射为领域对象,所以还是一种针对 数据库的编程模型。 LINQ是微软将在C#3.0中将推出的语言集成查询技术,许多人也将LINQ叫做微软的ORM。 LINQ 不仅仅针对关系数据库,它只是解决一个问题Data!=Object,也就是说他解决的就是 Data=Object.。作为底层框架,可以为ORM 实现提供更强大的基础平台。在Linq 之前在.net 领域最流行的框架就是Nhibernate。是不是在LINQ 之后Nhibernate就要消失呢?答案自然是 否定的。 这里有个帖子Microsoft LINQ +NHibernate,在那篇帖子中,作者列举了三大原因: 在DLINQ 中,虽然可以在语言层级定义查询逻辑。但是依然没有将数据库持久化数据映射 为领域对象,所以还是一种针对数据库的编程模型。而Nhibernate则可以直接将关系数据映 射为领域模型,这是DLINQ 的主要问题。 DLINQ 不支持继承类的映射。 Nhibernate已经提供了许多帮助进行领域面向对象建模的特征。而DLINQ 目前还无法拥有。 而LINQ + NHibernate的好处则是:类型安全的查询,并且能使用智能提示功能!这样可以不 用学习HQ

文档评论(0)

0520 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档