Java | 软件工程 | 开发理论 | VB | VC | .NET | C/C++ | Delphi | ASP | PHP | JSP | SOA频道  | 开发者博客
a
   LINQ 是支持以类型安全方式查询数据的一系列语言扩展;待查询数据的形式可以是 XML(LINQ 到 XML)、数据库(启用 LINQ 的 ADO.NET,其中包括 LINQ 到 SQL、LINQ 到 Dataset 和 LINQ 到 Entities)和对象 (LINQ 到 Objects) 等。Visual Studio 2008中最重要的革新有三处,最让开发者感到兴奋的就是包含了早就该容纳进来的语言级集成查询LINQ。[详细介绍]
专题策划:天极Yesky软件开发频道 内容提供:dizzarz [010-82657868]
  VS2008领军人物
LINQ框架设计指南
  根据框架设计指南的精神,微软发布了基于LINQ构建框架的设计指南。LINQ框架设计指南涵盖了诸如API的设计与行为等主题。与很多公司制定的编码指南不同,它并没有包含设计的细枝末节,例如命名模式与格式,除非它们牵涉到公有的API库。

  大多数框架设计指南最终都能够找到与FxCOP集成的方式。FxCOP是一个代码分析工具,它被微软和其它公司用来确保编码的一致性。

LINQ 的演变及其对 C# 设计的影响
  简单地说,LINQ 是支持以类型安全方式查询数据的一系列语言扩展;它在代号为“Orcas”的下一个版本 Visual Studio 中发布。待查询数据的形式可以是 XML(LINQ 到 XML)、数据库(启用 LINQ 的 ADO.NET,其中包括 LINQ 到 SQL、LINQ 到 Dataset 和 LINQ 到 Entities)和对象 (LINQ 到 Objects) 等。
VS2008中的领军人物--LINQ

  在Visual Studio 2008中最重要的革新有三处,而且都与动态编程有关:首先是.NET Framework 3.5的最终版,它包含了开发Silverlight程序必要的图形库,而且Silverlight开发工具Popfly也成了VS2008的一部分;第二,通过动态语言运行时(DLR)支持IronRuby、IronPython等动态语言,而DLR也是.NET 3.5的一部分;第三,包含了早就该容纳进来的语言级集成查询LINQ。

  所以说LINQ是Visual Studio 2008中的领军人物一点也不为过。借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据。目前为止LINQ所支持的数据源有SQL Server、XML以及内存中的数据集合。

  LINQ开发教程
LINQ初体验之LINQ to Object
     LINQ带来很多开发上的便利。首先,他可以利用Visual Studio这个强大的IDE(这话决不是吹,Visual Studio绝对是最好用的开发工具之一),至少用Visual Studio来写SQL语句,可以有智能感知了,比起从前用查询分析器写存储过程的感觉好多了!其次,它可以把数据当成一个对象来操作,即 Data == Object? 的问题。

  LINQ目前可以对XML, Object, SQL做数据访问,今后还会有LINQ to Entity的功能

一步一步学LINQ to SQL教程
    Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。
(一):预备知识 (二):DataContext与实体
(三):增删改 (四):查询句法
(五):存储过程 (六):探究特性
(七):并发与事务 (八):继承与关系
(九):其它补充 (十):分层构架的例子
LINQ to SQL相关文档
       其实绝大部分的程序都是在跟数据打交道,然而目前的情景是,程序员编写代码调用数据库提供的接口对数据进行操作,至于数据库内部是如何进行操作的,不得而知,程序员只是传递给数据库一些文本命令,数据库对其进行解析并作出相应的反应,这样的做法存在着明显的缺陷,例如程序员无法实现编译时验证并且也无法获得编写代码时的智能感知功能。
LINQ to SQL 扩展LINQ to SQL以支持批量删除
Linq to Sql的执行可能无法复用查询计划 在Linq to Sql中管理并发更新时的冲突
LINQ to Entitits
      许多应用程序经常基于一个关系型数据库来编写。在有些时候,这些应用程序将不得不和以关系方式提供的数据相比配。在编写应用程序时,数据架构通常不是一下子就很理想的,并且应用程序的概念模型和数据库的逻辑逻辑模型是不一致的。实体数据模型(EDM)是一种概念数据模型,能被用来对特定的领域进行数据建模。因此应用程序能和作为实体或对向的数据相匹配。更多信息请参考实体数据模型
LINQ to XML相关教程及文档

LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML

  LINQ to XML 最重要的优势是它与 Language-Integrated Query (LINQ) 的集成。 由于实现了这一集成,因此,可以对内存 XML 文档编写查询,以检索元素和属性的集合。 LINQ to XML 的查询功能在功能上(尽管不是在语法上)与 XPath 和 XQuery 具有可比性。 Visual C# 2008 集成 LINQ 后,可提供更强的类型化功能、编译时检查和改进的调试器支持。

LINQ To Xml学习 - 1. 概述 LINQ To Xml学习 - 2 编程概述
C# 2008 学习笔记 - LINQ to XML 使用LINQ to xml 快速创建自己的Rss

 

  综合讨论
LINQ下使用三层架构的探索
    现在网上能够将LINQ讲的很清楚或者比较深刻的文章并不多,而关于分层的则就更少,无论是国外还是国内,对于LINQ的应用都还在探索阶段,也有不少人怀疑LINQ的性能。

  而就我个人而言,也没有更好的办法去探究它的性能究竟如何。不过作为一个传统三层架构的忠实粉丝,我仅仅将我在LINQ下使用三层架构的经验拿出来与大家分享。如果这么做不好或者会损失性能,还请高手指出。如果觉得有可以探讨的地方,欢迎大家留言。进入正题,为了实现多种数据展现的方法,我使用了一个很流行的NORTHWIND数据库(就是Scott MitchellASP.NET 2.0数据教程中的那个数据库)。在这里,我们所使用的三层架构稍稍与原先不同,因为LINQ的存在。

(1) (2) (3)

Quaere:Java上的LINQ
      在07年的JavaZone大会上,Anders Noras介绍Quaere库,他这个库比喻成Java上的LINQ。Quaere是一门DSL,任何实现了Iterable或其Queryable接口的结构,Quaere都能提供查询功能。
LINQ To Sql, 为何继承就这么费劲?
     LINQ To Sql(以下简称LS)从一降世似乎就是个问题宝宝。批更新问题, Like问题,RTM之前的"BUG"(select new不能显式创建实体)等等接踵而至,很多时候我们不得不回到SqlCommand去来"扩展"LS,不巧的是,LS留给程序员的灵活性很有限,我们的Extension总是有不尽完美的地方,在自我扩展的同时我更多的是期待Entity Framework正式Release时候能解决这些问题,至少是能够带给我们更多的灵活性。
LINQ to SQL的不足
    LINQ to SQL虽然将数据库操作和业务逻辑隔离开来,使开发人员能够使用单一的语言和知识能够方便的操作数据库并处理业务逻辑。但是这毕竟是微软O/R解决方案的第一个版本,相比相对成熟的DataSet数据集解决方案来说,我们还是可以看到一些不足。

 

 

编者按 更多

    经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。

     考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库( database )和 XML 相关。

    于是LINQ技术应运而生

LinQ是什么? 更多

    LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询。LINQ的目标是降低访问数据的复杂度。LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用,能够更好地与编成模型集成,可以在Visual Studio中进行智能提示。

  LINQ可以为SQL Server提供对象到关系的映射。此外,LINQ可以将单个类映射到多个表或视图,可以进行存储查询和实体查询。

LINQ to Object

     术语“LINQ to Objects”是指直接对任意 IEnumerable 或 IEnumerable<(Of <(T>)>) 集合使用 LINQ 查询,无需使用中间 LINQ 提供程序或 API,如 LINQ to SQL 或 LINQ to XML。可以使用 LINQ 来查询任何可枚举的集合,如 List<(Of <(T>)>)、Array 或 Dictionary<(Of <(TKey, TValue>)>)。该集合可以是用户定义的集合,也可以是 .NET Framework API 返回的集合。

     从根本上说,LINQ to Objects 表示一种新的处理集合的方法。采用旧方法,您必须编写指定如何从集合检索数据的复杂的 foreach 循环。而采用 LINQ 方法,您只需编写描述要检索的内容的声明性代码。

LINQ to SQL

     LINQ to SQL 是随.NET Framework Orcas版一起发布的O/RM(对象关系映射)实现,它允许你用.NET 的类来对一个关系型数据库建模。然后你可以用LINQ对数据库进行查询,以及进行更新/插入/删除数据的操作。

      LINQ to SQL完全支持事务,视图和存储过程。它还提供了一种把数据验证和业务逻辑规则结合进你的数据模型的便利方式。

LINQ to XML

     LINQ to XML 提供使用 .NET 语言集成查询 (LINQ) Framework 的内存中 XML 编程接口。LINQ to XML 使用最新的 .NET Framework 语言功能,相当于更新的和重新设计的文档对象模型 (DOM) XML 编程接口。

       LINQ 系列技术提供了针对对象 (LINQ)、关系数据库 (LINQ to SQL) 和 XML (LINQ to XML) 的一致查询体验。

相关内容 更多

SQL Server 2008新特性

.NET Framework革命性的新平台

WCF:面向SOA的统一框架

WPF:统一的界面解决方案

 


  • 天极服务|关于我们|About us|网站律师|电子杂志|RSS订阅|友情合作|加入我们|网站地图|MSN/QQ上看天极
  • Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
  • 商务联系、网站内容、合作建议:010-82657868在线提交意见反馈渝ICP证B2-20030003号