兴国安邦

C# 3.0, Linq, Linq To Sql

博客园 首页 新随笔 联系 订阅 管理
  33 Posts :: 0 Stories :: 553 Comments :: 150 Trackbacks
谈到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

你可能感觉比较陌生。放心,这大概是第一次看到缘故。在这里像 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
posted on 2006-08-14 21:09 Tom Song 阅读(13109) 评论(36)  编辑 收藏 网摘 所属分类: C# 3.0

Feedback

#1楼 2006-08-14 22:46 aspnetx      
关注
  回复  引用  查看    

开始学习...
  回复  引用    

#3楼 2007-01-30 14:32 longer[未注册用户]
vs2005需要E文版的吗?
我有装中文版,可就提示我没装vs2005!

  回复  引用    

#4楼[楼主] 2007-01-30 15:45 宋国安      
是的,linq preview只支持英文版
  回复  引用  查看    

#5楼 2007-04-20 09:58 Freeman Shen      
学习
  回复  引用  查看    

#6楼 2007-06-30 14:00 ep[未注册用户]
学习 看完后,想不通 这和 拼字串 查询 有什么区别
  回复  引用    

#7楼 2007-07-11 15:07 伍迷      
LINQ Preview (May 2006).msi为何下载后不能安装,非要使用VS2005的英文版吗?我现在中文版已经使用很久,如何解决这个问题?

  回复  引用  查看    

#8楼[楼主] 2007-07-11 15:45 宋国安      
@伍迷
beta2 马上就出来了,等几天吧。

  回复  引用  查看    

#9楼[楼主] 2007-07-11 15:48 宋国安      
@ep
差别很大。拼字符串的,不能编译,不能提前检查错误,不能预防sql 注入。

  回复  引用  查看    

哪有VS2005英文版下啊....
VS2008 可以运行吗?

  回复  引用    

#11楼[楼主] 2007-07-31 14:49 宋国安      
这里提到的linq preview,是专门为vs2005的。你去下个vs2008的beta2吧.就不要装linq preview了。

到这里下载
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx" target="_new">http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx

  回复  引用  查看    

我在装VS2008
我还要NORTHWND数据库啊....
linq preview 我装不了....
可以发给linq preview 的 NORTHWND 数据库给我吗? SQL 2005的
apengyang@126.com

  回复  引用    

#13楼[楼主] 2007-07-31 15:15 宋国安      
sample 里有的。
http://msdn2.microsoft.com/en-us/bb330936.aspx" target="_new">http://msdn2.microsoft.com/en-us/bb330936.aspx

在SampleQueries\Data 目录下。

  回复  引用  查看    

#14楼 2007-07-31 15:31 Young Peng      
@宋国安
谢谢,老大啊!

  回复  引用  查看    

#15楼 2007-07-31 17:06 Young Peng      
老大,我下的那个VS2008的...那个数据库附加不上去啊.....
只有 NORTHWND.MDF文件,没有日志文件....

  回复  引用  查看    

#16楼[楼主] 2007-07-31 17:25 宋国安      
感谢你发现的问题。我们会尽快修复这个问题。我已把该数据库的备份发到你信箱.
  回复  引用  查看    

#17楼 2007-08-04 21:07 镜涛      
开始学习!
  回复  引用  查看    

写的挺不错,单凭这份学习新技术的热情就挺值得我佩服的
  回复  引用    

#19楼 2007-09-28 12:16 高海东      
开始学习
  回复  引用  查看    

#20楼 2007-12-25 10:41 马可香蕉      
学习···
  回复  引用  查看    

#21楼 2008-01-19 19:39 浪客剑心      
学习中....
  回复  引用  查看    

#22楼 2008-04-10 11:04 aahu[未注册用户]
学习中……
  回复  引用    

#23楼 2008-04-29 00:41 Bēniaǒ      
刚开始着手学习LinQ
收藏了.

  回复  引用  查看    

刚在学习。。。
  回复  引用    

呵呵,学习
文韬来的早呀。

  回复  引用    

#26楼 2008-08-26 14:22 WCJ      
楼主,给我发一份NORTHWND.MDF的文件,谢谢
邮箱是:fywz-wcj@163.com

  回复  引用  查看    

我设计了更好的LINQ语法,以博主的入门例子说明:
select string.ToString() from names where string.Length == 5 order by string

同样,update和insert也可以如下设计:
update names set string = string.ToUpper()
insert into names values("Hello, LINQ!")

大家以为如何?

  回复  引用    

#28楼 2008-12-04 14:52 win[未注册用户]
cs101sample 哪里下载?
  回复  引用    

#29楼 2008-12-09 23:05 Test12[未注册用户]
Test
  回复  引用    

#30楼 2009-04-12 13:58 YONKER[未注册用户]
LINQ技术是vs2008最新的技术,需要用2008工具,本人有全套工具,需要的话加我,写明来意
  回复  引用    

#31楼 2009-04-12 13:59 YONKER[未注册用户]
LINQ技术是vs2008最新的技术,需要用2008工具,本人有全套工具,需要的话加我,写明来意 qq451900800
  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 476800




相关文章:

相关链接: