·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
您现在的位置:天新网 > 软件开发 > .Net开发 > VB.NET
Visual Basic 9不完全入门之DLinq简介
http://dev.21tx.com 2007年09月06日 John Chen

  在当下的微软社区中,DLinq (Linq to SQL) 无疑已成为最炙手可热的话题之一。虽然我们知道,Linq 的精髓并不仅仅是 DLinq 一部分,但是由于其应用的广泛性,还是有必要在这里做一个关于 Visual Basic 9 中的 DLinq 的简要介绍。

  数据库支持

  当前的 Linq to SQL 仅仅支持 SQL Server 2005,SQL Server 2000 与 SQL Server Compact Edition。虽然它同样支持 SQL Server 2000,但是基于兼容性考虑,我们建议您尽可能地使用 SQL Server 2005 进行测试或开发。至于其他种类数据库的支持,暂时没有相关信息,但是预料在不久的将来,RTM,甚至是 SP1,可能会做出支持。

  数据库映射

  Linq to SQL 提供了强有力的 ORM 功能。您可以选择自己继承 DataContext 获得更大的自定义化,也可以直接采用 DBML 的可视化设计模式。它支持实体间的映射,One to many 或者 One to one。Lazy-load 模式提供了良好的性能。同时,您可以利用 LINQ 提供的编译时检查,以确保生成可靠的 SQL。无需编写 SQL - 是的,您只需要像查询内存中数据一样即可。

  Linq to SQL 甚至支持存储过程——看看 ScottGu 提供的那幅图:

  

  注意:存在 BUG !

  毕竟是 Beta 1,存在或多或少的 Bug 都是正常的。请尽量减少实体间的映射,除非你不想再增加数据。事实确实是这样的,在你试图往带有实体映射的表中增加数据,您将得到一个 InvalidCastException。这个 Bug 已经被证实,如果 June CTP 中没有了,请及时通知我,万分感谢。

  分页数据

  在站点项目中,分页应该是最重要的数据库应用之一。Scott 博客中有一些关于它的介绍,引用如下:

  

  实际上,这和掐头去尾的手段没有什么不同;只是在 SQL Server 2005 中,将用 Rownumber,而 SQL Server 2000 不支持此特性,因此将可能造成分页不准确的状况。Linq to SQL 生成的 SQL 语句性能还是相当高的,具体可以在查询分析器中看到。

  使用限制

  在 Visual Basic 9 Beta 1 中,LINQ 语句暂时还不支持 Join,GrouPBy,Count,Sum 等等 T-SQL 应用;而在 June CTP 中,它们都被支持。因此,我建议还没有下载的各位尽可能地安装 June CTP。另有一点,就是 Linq to SQL 中的查询不能够调用本地函数,或者诸如 Array.Contains 一类。所以,虽然 ToArray 对于遍历操作有相当大的性能甜头,但是代价就是不能使用嵌套查询,因为它已经成为了一个本地数组。除此之外,理论上应该还有许许多多的细节限制,毕竟 Linq to SQL 不是从内存中查询数据的。

  温故而知新

  Visual Basic 9 不完全入门系列(1) : 语法糖

  Visual Basic 9 不完全入门系列(2) : 语法增强

  Visual Basic 9 不完全入门系列(3) : LINQ 简介

  Visual Basic 9 不完全入门系列(4) : LINQ 进阶

  结语

  虽然 Linq 不是为 DLinq 而生,但是 DLinq 铺天盖地的介绍,还是让我们看到了 DLinq 在 Linq 家族中举足轻重的地位。这篇只做了最为基础的介绍,如果大家想了解更多,可以与我联系,或者自行学习。当然,下一篇介绍的还是 DLinq。

上一篇: Visual Basic 9 不完全入门之LINQ进阶
下一篇: Visual Basic 9不完全入门之LINQ简介

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net