科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual Basic 9不完全入门之DLinq简介

Visual Basic 9不完全入门之DLinq简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在当下的微软社区中,DLinq (Linq to SQL) 无疑已成为最炙手可热的话题之一

作者:John Chen 来源:论坛整理 2007年11月9日

关键字: Visual Basic 不完全入门 DLINQ

  • 评论
  • 分享微博
  • 分享邮件
在当下的微软社区中,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。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章