数据与对象不等式的 LINQ 解

阅读数:60 2007 年 11 月 8 日

话题:.NETDevOps语言 & 开发架构

业务系统需要处理的是领域逻辑,适用的是业务实体对象,但信息服务层提供的仅仅是数据,而“数据!=对象”。面对巨大的开发需求,各开源组织和厂商纷纷给出了自己的答案,在.NET 3.5中微软也给出了自己的解——LINQLanguage Integrated Query)。

很多开源组织和厂商给出了自己的O/R Mapping方案,但没有一个像LINQ这么彻底的做到语言编译器层次,在昨天开幕的Tech-ED(北京)大会上,LINQ会场上座无虚席,来自各个领域的开发人员和架构师聚集在一个关于LINQ的入门级别的Session中,希望跳出以往采用类似框架繁琐的配置之外,找到下一代项目实施的灵感。

随着数据概念本身的泛化,开发人员需要为对象系统映射的数据标的种类也林林总总,.NET 3.5中提供了5种形式的LINQ

  • LINQ to Objects:提供对各种集合类型的实体对象映射;

  • LINQ to DataSets:服务离线的内存数据库——DataSet

  • LINQ to SQL:专用于SQL Server数据库;

  • LINQ to Entities:服务SQL Server之外的关系数据实体,并为其他数据库产品提供扩展;

  • LINQ to XML:适用于层次型XML数据;

为了满足LINQ需要,C# 3.0Visual Basic 9)也作了较大调整,为了应对越来越复杂的对象系统,隐式类型化局部变量(Var)和匿名类被添加到语言之中。考虑到数据访问在众多应用中的基础地位以及LINQ的便利性,相信它会成为下一波.NET项目实施中的首选。

关于 TechEd 2007 更多的信息,可以访问TechEd 2007 官方网站