业务系统需要处理的是领域逻辑,适用的是业务实体对象,但信息服务层提供的仅仅是数据,而“数据!=对象”。面对巨大的开发需求,各开源组织和厂商纷纷给出了自己的答案,在.NET 3.5中微软也给出了自己的解——LINQ(Language 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.0(Visual Basic 9)也作了较大调整,为了应对越来越复杂的对象系统,隐式类型化局部变量(Var)和匿名类被添加到语言之中。考虑到数据访问在众多应用中的基础地位以及 LINQ 的便利性,相信它会成为下一波.NET项目实施中的首选。
【注:本文由控件中国网转载】