Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1042883
  • 博文数量: 254
  • 博客积分: 10185
  • 博客等级: 上将
  • 技术积分: 2722
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 15:04
文章存档

2011年(8)

2009年(1)

2008年(31)

2007年(214)

分类:

2008-01-29 01:53:39

谈到DLINQ,就不得不先说LINQ。让我们先看看什么是LINQ。LINQ是 Language-Integrated Query的缩写。那么事实上DLINQ就是 Database Language-Integrated Query 的缩写。LINQ和DLINQ最大的区别就在与LINQ是对内存进行操作,而DLINQ的操作对象为数据库。
我们先来看一个LINQ的例子。在这之前,如果你手头没有VS2008,那么你需要安装VS2005和相应的演示版LINQ preview版本。你可以到下面地址去下载。

微软也提供了很多学习的地方。下面是几个实用链接:


好,我们先来看一个LINQ的例子。这个例子可以从LINQ的说明文档上得到。
the linq sample:
 1 using System;
 2 using System.Query;
 3 using System.Collections.Generic;
 4
 5 class app {
 6   static void Main() {
 7     string[] names = { "Burke", "Connor", "Frank",
 8                        "Everett", "Albert", "George",
 9                        "Harris", "David" };
10
11     IEnumerable expr = from s in names
12                                where s.Length == 5
13                                orderby s
14                                select s.ToUpper();
15
16     foreach (string item in expr)
17       Console.WriteLine(item);
18   }
19 }
20

    你可能感觉比较陌生。放心,这大概是第一次看到缘故。在这里像是from,where,orderby,select等的操作字都是LINQ的保留字。其实,query expression看起来和sql语句很像。比如 select * from table1 where column1 = "";我第一次看到LINQ时,就感觉是写在程序里的sql语句。只不过,以前我们都是用string类型形成一个sql语句,然后通过command或adapter传到sql server中。而现在,感觉就像把sql语句直接当成程序代码来实现。这只不过是我们的一个错觉。

    如上面这个例子,只不过是从一个string的数组中,提取出长度为5的,并且把提取的数据全部变成大写。IEnumerable 使用到了c#2.0中的泛型。该列子的结果,返回一个数据集,存放到expr中。从那个数据集中取的结果,是用in 表达的,如列所示,from s in names,即:在names集合中,取出s。s代表一条条纪录。where 表示条件,orderby 表示按什么排序。select 选择那些字段组成变量。这里,你可能会觉得奇怪,s变量在那里声明的呢。我第一看到这里的时候,也感到奇怪。其实s变量是names变量里的元素,你在实用in names 时,系统已经声明了s变量。

    在这个列子中,大家可以先感受一下LINQ,在随后的章节中,我会为大家介绍更多。对内存数组的查询,并不能显示出LINQ的强大功能,对数据库的操作,才使得LINQ更加具有实际意义。在随后的章节中,我将逐渐介绍DLINQ的语法。

阅读(2199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~