您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > C# 3.0 LinQ入门系列
C#3.0LinQ入门系列目录导航1.C#3.0入门系列(一)从linq开始引C#3.0。2.C#3.0入门系列(二)数据库的准备,引入LinqToSql的准备。3.C#3.0入门系列(三)第一个LinqToSql工程。4.C#3.0入门系列(四)-之Select操作Select语法。5.C#3.0入门系列(五)-之Where操作Where操作语法。6.C#3.0入门系列(六)-之OrderBy操作OrderBy操作语法。7.C#3.0入门系列(七)--之OR工具介绍映射工具的介绍,ORDesigner8.C#3.0入门系列(八)-之GroupBy操作GroupBy操作入门。9.C#3.0入门系列(九)-之GroupBy操作更多GroupBy操作。10.C#3.0入门系列(十)-之Join操作Join操作11.C#3.0入门系列(十一)-之In,Like操作In&Like操作12.C#3.0入门系列(十二)-Lambda表达式中LiftingLambda表达式中的Lifting目录C#3.0入门系列(一).................................................................................................................3C#3.0入门系列(二)..................................................................................................................5C#3.0入门系列(三)..................................................................................................................8C#3.0入门系列(四)-之Select操作....................................................................................13C#3.0入门系列(五)-之Where操作........................................................................................16C#3.0入门系列(六)-之OrderBy操作....................................................................................19C#3.0入门系列(七)--之OR工具介绍....................................................................................23C#3.0入门系列(八)-之GroupBy操作....................................................................................28C#3.0入门系列(九)-之GroupBy操作....................................................................................32C#3.0入门系列(十)-之Join操作..........................................................................................38C#3.0入门系列(十一)-之In,Like操作..............................................................................46C#3.0入门系列(十二)-Lambda表达式中Lifting................................................................51C#3.0入门系列(一)谈到dlinq,就不得不先说linq。让我们先看看什么是linq。linq是LanguageIntegratedQuery的缩写。那么事实上dlinq就是DatabaseLanguageIntegratedQuery的缩写。linq和dlinq最大的区别就在与linq是对内存进行操作,而dlinq的操作对象为数据库。我们先来看一个linq的例子。在这之前,你需要安装s2008beta2版本。可以到下载。如果,你的机器上是vs2005的英文版,你还需要安装一个linqpreview版本。你可以到下面地址去下载。=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en微软也提供了好多学习的地方。先给出几个链结。://msdn.microsoft.com/data/ref/linq/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp好,我们先来看一个linq的例子。这个例子可以从linq的说明文档上得到。1usingSystem;2usingSystem.Query;3usingSystem.Collections.Generic;45classapp{6staticvoidMain(){7string[]names={Burke,Connor,Frank,8Everett,Albert,George,9Harris,David};1011IEnumerablestringexpr=fromsinnames12wheres.Length==513orderbys14selects.ToUpper();1516foreach(stringiteminexpr)17Console.WriteLine(item);18}19}20你可能感觉比较陌生。放心,这大概是第一次看到缘故。在这里像from,where,orderby,select等都是linq的保留字,都该用蓝色显示的,但是好像cnblogs还没有开始支持。所以插入代码时,他们就被当作普通字符了。其实,queryexpression看起来和sql语句很像。比如select*fromtable1wherecolumn1=;我第一次看到linq时,就感觉是写在程序里的sql语句。只不过,以前我们都是用string类型形成一个sql语句,然后通过command或adapter传到sqlserver中。而现在,感觉就像把sql语句直接当成程序代码来实现。这只不过是我们的一个错觉。这个例子,只不过是从一个string的数组中,提取出长度为5的,并且把提取的数据全部变成大写。IEnumerablestring使用到了c#2.0中的泛型。该列子的结果,返回一个数据集,存放到expr中。在这里,从那个数据集中取的结果,是用in表达的,如列所示,fromsinnames,在names集合中,取出s。s代表一条条纪录。where表示条件,orderby表示按什么排序。select选择那些字段组成变量。这里,你可能会觉得奇怪,s变量在那里声明的呢。我第一看到这里的时候,也感到奇怪。其实s变量是names变量里的元素,你在innames时,已经声明了s变量。在这个列子中,大家可以先感受一下linq,在随后的章节中,我会为大家介绍更多。对内存数组的查询,并不能显示出linq的强大功能,对数据库的操作,才使得linq更加具有实际意义。在随后的章节中,我将逐渐介绍dlinq的语法。C#3.0入门系列(二)在第一篇中,我已经和大家简单介绍了linq。也和大家提起linq是C#3.0里的一个特性。不过,你去装linqpriview时,你会发现,它提供了许多vb的linq代码。从现在的情况看,linq会被移植到.netframework下。在本篇中,笔者将开始更加详细的介绍dlinq。同时,也会介绍很实用的技巧和方法。在这之前,你需要安装s2008beta2版本。可以到下载。如果,你的机器上是vs2005的英文版,你还需要安装一个linqpreview版本。你可以到下面地址去下载。=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en以后的章节中,笔者将会配合这个版本,进行讲解,并对它里面提供的例子进行详细的说明。安装linqpreview后,你可以在安装目录下,找到安装程序提供的例子。C#的应该在C:\ProgramFiles\LINQPreview\C#\Samples\SampleQueries目录下。打开该工程。因为dlinq主要是对数据库进行操作,你还需要准备数据库。例程给你提供的数据库是用.\SQLEXPRESS来实现的。说实话,这个版本的数据库实在是难用。我建议大家使用SQL2000orSQL2005.你可以在C:\ProgramFiles\LINQPreview\Data目录下找到一个叫做NORTHWND的数据库文件。如图所示,把它附加到你的服务器上。因为NORTHWND是SQLSERVER附带的例子数据库,你可能需要将原来的删掉,才能附加新的上去。你也可以到下载forbeta2的sample。其数据文件的路径为,LinqSamples\SampleQueries\Data你在附加这个数据库的时候,有可能碰到SQL2000附加不上去的问题。你可以给我留言,我这里有SQL2000的数据库备份。在附加完数据库后,你需要修改程序文件了,让SampleQueries的程序使用你刚附加的数据库。打开SampleQueries的程序,在SolutionExplorer中找到DLinqSamples.cs文件,打开它,找到24行。如下的代码。privatereadonlystaticstringconnString=AttachDBFileName='+dbPath+';Server='+sqlServerInstance+';IntegratedSecurity=SSPI;enlist=false;将它替换为privatereadonlystaticstringconnString=Server=yourSever;Database=northwind;User=yourname;Password=yourPassword;这样,你就可以使用你刚附加的数据库了。或许你要问为什么非要用这个新的数据库,为什么不用SQLSERVER附带,那是因为在这个新的数据库中,我们添加了许多新的东西。^_^一切都准备好以后,我们就可以来看这个例子了。笔者在这么没有兴趣讲解SampleQueries是如何设计的,也没有兴趣讲解它是如何取到code的。这里我们只讲dlinq。先让我们来看看大体的一个界面。界
本文标题:C# 3.0 LinQ入门系列
链接地址:https://www.777doc.com/doc-4427900 .html