谈到dlinq,就不得不先说linq。让我们先看看什么是linq。linq是 Language Integrated Query的缩写。那么事实上dlinq就是 Database Language Integrated Query 的缩写。linq和dlinq最大的区别就在与linq是对内存进行操作,而dlinq的操作对象为数据库。
我们先来看一个linq的例子。在这之前,你需要安装s2008 beta2版本。可以到
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx 下载。如果,你的机器上是vs2005的英文版,你还需要安装一个linq preview版本。你可以到下面地址去下载。
http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en
微软也提供了好多学习的地方。先给出几个链结。
http://msdn.microsoft.com/data/ref/linq/
http://msdn.microsoft.com/data/ref/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp
http://msdn.microsoft.com/vcsharp/future/
好,我们先来看一个linq的例子。这个例子可以从linq的说明文档上得到。
the linq sample
1
using System;
2
using System.Query;
3
using System.Collections.Generic;
4![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class app
{
6![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
static void Main()
{
7![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
string[] names =
{ "Burke", "Connor", "Frank",
8
"Everett", "Albert", "George",
9
"Harris", "David" };
10![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
IEnumerable<string> expr = from s in names
12
where s.Length == 5
13
orderby s
14
select s.ToUpper();
15![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
foreach (string item in expr)
17
Console.WriteLine(item);
18
}
19
}
20
你可能感觉比较陌生。放心,这大概是第一次看到缘故。在这里像 from ,where,orderby, select等都是linq的保留字,都该用蓝色显示的,但是好像cnblogs还没有开始支持。所以插入代码时,他们就被当作普通字符了。
其实,query expression看起来和sql语句很像。 比如 select * from table1 where column1 = "";
我第一次看到linq时,就感觉是写在程序里的sql语句。只不过,以前我们都是用string类型形成一个sql语句,然后通过command或adapter传到sql server中。而现在,感觉就像把sql语句直接当成程序代码来实现。这只不过是我们的一个错觉。
这个例子,只不过是从一个string的数组中,提取出长度为5的,并且把提取的数据全部变成大写。 IEnumerable <string> 使用到了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的语法。
http://www.cnblogs.com/126/archive/2006/08/14/476800.html
我们先来看一个linq的例子。在这之前,你需要安装s2008 beta2版本。可以到
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx 下载。如果,你的机器上是vs2005的英文版,你还需要安装一个linq preview版本。你可以到下面地址去下载。
http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en
微软也提供了好多学习的地方。先给出几个链结。
http://msdn.microsoft.com/data/ref/linq/
http://msdn.microsoft.com/data/ref/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp
http://msdn.microsoft.com/vcsharp/future/
好,我们先来看一个linq的例子。这个例子可以从linq的说明文档上得到。
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
1
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
6
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
7
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
你可能感觉比较陌生。放心,这大概是第一次看到缘故。在这里像 from ,where,orderby, select等都是linq的保留字,都该用蓝色显示的,但是好像cnblogs还没有开始支持。所以插入代码时,他们就被当作普通字符了。
其实,query expression看起来和sql语句很像。 比如 select * from table1 where column1 = "";
我第一次看到linq时,就感觉是写在程序里的sql语句。只不过,以前我们都是用string类型形成一个sql语句,然后通过command或adapter传到sql server中。而现在,感觉就像把sql语句直接当成程序代码来实现。这只不过是我们的一个错觉。
这个例子,只不过是从一个string的数组中,提取出长度为5的,并且把提取的数据全部变成大写。 IEnumerable <string> 使用到了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的语法。
http://www.cnblogs.com/126/archive/2006/08/14/476800.html
TrackBack:http://www.cnblogs.com/126/archive/2006/08/14/476800.html