| 网站首页 | 技术文章 | 下载频道 | 博客 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> .NET技术 >> VB.NET >> VB.NET技术资料 >> 正文
  ►  Visual Basic 9不完全入门之DLinq简介
Visual Basic 9不完全入门之DLinq简介
作者:John Chen    阅读人次:……    文章来源:天极论坛整理    发布时间:2007/9/7    网友评论()条
 

  在当下的微软社区中,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。

 

 
文章录入:编辑01    责任编辑:编辑01 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子