技术开发 频道

F# 3.0发布:支持类似SQL语法的LINQ

        【IT168 技术】F# 3.0 包含在 Visual Studio 11 beta 里,支持使用 LINQ 表达式。

  F#总是可以访问底层的库,这使得 LINQ 成为可能,但F# 3却是第一个在语法上提供实际支持的版本。就像 Visual Basic,F#的 LINQ 直接在查询里支持聚合函数,如 count、sum、first 和 last。此外,F#也和 VB 一样不需要末尾的“select”子句。所有查询都要放在以“query {”开始,并以匹配的“}”结束的表达式里。

  LINQ 或语言集成查询是一种类似 SQL 的语法,最初是为Cω这个实验语言开发的,最终却在 Visual Basic 和 C# 里发布。虽然很独特,但概念上却类似于 80 年代和 90 年代的语言,如 dBasePowerBuilder

  另一个在F# 3 里发布的特性是类型提供程序。这个话题相对复杂,涉及到的东西可以看做代码生成和动态类型之外的另一种选择。若想了解更多,我们建议你看看 Joe Pamer 关于类型提供程序的视频演讲。F#自带以下类型提供程序

  OData 服务

  •   数据库链接,如 SQL
  •   数据库架构,如 LINQ to SQL 的 dbml 文件
  •   实体数据模型格式(即 EDMX 架构文件)
  •   Web Service 的 WSDL 文档
  •   以 .resx 为扩展名的资源文件

  类型提供程序的一个有趣特性是它们可以在设计时为 Visual Studio 的智能感知提供数据。这意味着会有一些时候代码完成的提示显示为“加载中”,而不是实际的属性和方法。这个延迟取决于每个类型提供程序以及远程服务器的响应速度。

  F#还将支持可移植库。可移植库是无需单独重新编译就可以在 .NET、Silverlight、Windows Phone 和 XNA 上共享的 DLL。

  最后,F# 3 通过“member val”关键字提供自动实现属性。属性需要在声明的时候进行初始化,可变属性需要添加“with get, set”后缀。

  查看英文原文:LINQ for F#

0
相关文章