谈到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
 1using System;
 2using System.Query;
 3using System.Collections.Generic;
 4
 5class app {
 6  static void Main() {
 7    string[] names = { "Burke", "Connor", "Frank", 
 8                       "Everett", "Albert", "George", 
 9                       "Harris", "David" };
10
11    IEnumerable<string> 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的保留字,都该用蓝色显示的,但是好像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

转载于:https://www.cnblogs.com/hdjjun/archive/2008/11/05/1327191.html

C# 3.0 入门系列(一)相关推荐

  1. C# 3.0入门系列

    目录导航 1 C# 3.0 入门系列(一) 从linq开始引C# 3.0. 2 C# 3.0入门系列(二) 数据库的准备,引入Linq To Sql的准备. 3 C# 3.0入门系列(三) 第一个Li ...

  2. C#3.0入门系列(五)-之Where操作

    从本节开始,本文正式更名为C#3.0入门系列.先发布一则消息,VS2007 Beta版本已经发布咯,下载地址: http://www.microsoft.com/downloads/details.a ...

  3. WF4.0入门系列1——创建一个简单的工作流

    WF4.0入门系列1--创建一个简单的工作流 打开VS2010,选择文件-新建-项目,选择Workflow项 工作流台应用程序,在名称处输入chapter01,选择合适的位置,这里默认,单击确定. V ...

  4. 【转】C#3.0入门系列(九)-之GroupBy操作

    原文:http://www.cnblogs.com/126/archive/2007/07/10/812621.html 有朋友反馈说我提供的sample不能编译.大概是版本的问题,可以到http:/ ...

  5. C# 3.0入门系列(三)

    从本节开始,笔者将会和大家一起开始体验dlinq了.前面我们准备了数据库,也对数据库之间的关系做了初步的了解.有了数据库之后,数据和对象是一个什么样的关系呢?从dlinq的设计来看,它主要是为了解决d ...

  6. C# 3.0入门系列(二)

    在第一篇中,我已经和大家简单介绍了linq.也和大家提起linq是C# 3.0里的一个特性.不过,你去装linq priview时,你会发现,它提供了许多vb的linq代码.从现在的情况看,linq会 ...

  7. Vue 2.0 入门系列(15)学习 Vue.js 需要掌握的 es6 (2)

    类与模块 类 es6 之前,通常使用构造函数来创建对象 // 构造函数 User function User(username, email) { this.username = username; ...

  8. Vue2.0入门系列——父子组件间通信

    1.子组件更新,父组件不变 点击"按钮"按钮,子组件数据被修改,父组件数据不变  =========>>>>>>  项目源代码, <hea ...

  9. Microsoft Web Farm Framework (WFF) 2.0 入门系列之一:WFF 介绍

    Microsoft Web Farm Framework (WFF) 2.0 是微软开发的.基于IIS 7.x的小插件,能够帮助我们轻松实现Web网站的高性能.高可用性.如果想做基于IIS的反向代理, ...

最新文章

  1. 何恺明团队最新力作:超越EfficientNet,GPU上提速5倍|CVPR 2020
  2. 面试题之丑数的C++实现求解(孤陋寡闻了,才知道丑数这么high的东东)
  3. currency in SalesPipeline
  4. shell 字符串切割
  5. html大小写字符串转换成整数,c++字符串大小写转换
  6. 【Linux】查看日志文件
  7. 前台发送 ajax 请求到后台传递数组参数
  8. 复杂关联SQL的优化
  9. Python三:面向对象 之 类的封装
  10. Android之ListView优化(使用Lrucache,图片滑动时使用默认图片,停止时加载)
  11. 大数据-数据抽取(数据降维)算法
  12. mysql所有版本介绍_MySQL各版本介绍
  13. c语言程序设计必备单词,C语言编程必背单词版.docx
  14. Linux C/C++编程之(十四)文件操作相关函数
  15. oracle转义chr,oracle特殊字符替换用chr
  16. 起用 RabbitMQ (二)
  17. ppt幻灯片如何与母版背景一块复制到新幻灯片
  18. 国产服务器Kylin(aarch64)安装mysql8.0.27
  19. 谈谈唯一约束和唯一索引
  20. saas系统分几种类型

热门文章

  1. 微软为什么要公开AI系统测试数据集和度量指标?
  2. Gartner十大IT预测:七大数字巨头,有五家将心甘情愿“自我颠覆”
  3. ​10.24,华为鲲鹏要为程序员发福利!
  4. NSURLProtectionSpace 证书认证的上下文
  5. ElasticSearch实战:Linux日志对接Kibana
  6. 富士康裁员六万,试图用机器人扭转赤字?
  7. 开发者需要知道的有关软件架构的五件事
  8. #np.random.normal,产生制定分布的数集(默认是标准正态分布)
  9. 打印二叉树和为某一值的路径
  10. Unity UGUI——遮罩效果(Mask)