代码之家  ›  专栏  ›  技术社区  ›  Cheeso

LINQ(或LINQ)是一个利基工具,还是正在走向基础?

  •  7
  • Cheeso  · 技术社区  · 15 年前

    读完“ What is the Java equivalent of LINQ? “我想知道的是,(小写)语言集成查询-换言之,能够使用简洁的语法对对象集合或外部存储进行查询-对于大多数通用语言来说,这将是未来的道路吗?或者Linq是一项有趣的技术,它将继续局限于Microsoft语言吗?中间有什么?

    编辑 :我不懂其他语言,但在我学习的过程中,Linq似乎既不是空前的,也不是独一无二的。linq-lambdas和queries中的思想在其他语言中也有表达,而且这些思想似乎正在传播。

    8 回复  |  直到 15 年前
        1
  •  6
  •   Manuel Ceron    15 年前

    在Linq之前,python Generator Expressions 哪些是 对集合执行查询的特定语法 . python的语法比linq的语法要简单得多,但基本上可以像linq一样轻松地执行相同的查询。几个月前,我写了一篇 blog post comparing queries in C# and Python ,下面是一个小例子:

    C·LINQ:

    var orders = from c in customers
                 where c.Region == "WA"
                 from o in c.Orders
                 where o.OrderDate >= cutoffDate
                 select new {c.CustomerID, o.OrderID};
    

    python生成器表达式:

    orders = ( (c.customer_id, o.order_id)
               for c in customers if c.region == 'WA'
               for o in c.orders if o.date >= cutoff_date)
    

    编程语言中的查询语法是非常有用的工具。我相信每一种语言都应该包含这样的内容。

        2
  •  4
  •   Leeeroy    15 年前

    过了几年

    • 手工制作数据库访问(哦,这么多语言)
    • 穿过实体框架
    • 通过月份的模板获取和存储数据

    是时候让Somone用一种易于访问和语言集成的方式与数据库对话了。 linq-to-sql应该在几年前就有了。我为开发它的团队喝彩——最后是一个有意义的数据库访问框架。

    但这并不完美,目前我最头痛的是,对于其他公共数据库,LIQ2SQL没有真正的支持,Java也没有类似的支持。

    (通常,linq也很不错,btw,而不仅仅是linq to sql:-)

        3
  •  2
  •   Erik Forbes    15 年前

    我要说的是,任何语言的集成查询技术都将随着时间的推移而成为基础,特别是考虑到功能性编程语言最近的兴趣增加。

    Linq当然是我个人坚持.NET的最大原因之一,不管怎样,它已经成为我个人的基础,我敢打赌很多开发者也会这样认为。

        4
  •  2
  •   JaredPar    15 年前

    我认为LINQ下定的功能概念将在许多语言中流行。通过一组函数传递一系列对象以获得所需的对象集。本质上,在查询语法上使用lambda语法。

    这是一种非常强大和富有表现力的编码方式。

    这并不是因为我觉得这是一种基本上更好的方法(即lambda over query语法)。相对而言,将查询表达式的基础库支持添加到语言中要比添加查询语法容易得多。查询所需的lambda语法是

    • 兰姆达斯
    • 基础查询方法

    大多数新的语言支持lambdas(甚至C++最终得到它们!).添加库支持相当便宜,通常可以由有动机的个人完成。

    不过,要将查询语法转换为该语言需要做更多的工作。

        5
  •  1
  •   Bastien Léonard    15 年前

    免责声明:我从未使用过Linq。如果我错了,请纠正我。

    许多语言都有允许使用语言数据类型执行与LINQ相同的操作的构造。 显然,最有趣的特性是LINQ构造可以转换为SQL,但它不是特定于LINQ的: http://www.aminus.org/blogs/index.php/2008/04/22/linq-in-python?blog=2 .

        6
  •  1
  •   Dmitris    15 年前

    我认为Linq不会局限于微软的语言,看看吧,已经有了一些关于PHP的东西了,看看吧。 http://phplinq.codeplex.com/

    我认为Linq在开发过程中是一个很好的工具,如果它能被转移到其他语言中,我个人会非常高兴(就像我的PHP示例中那样)。

        7
  •  0
  •   Adam Robinson    15 年前

    我认为你也不能把它(或许多东西)归类为。虽然我很难说Linq是一个利基工具——它对很多人都有很多应用——但在我看来,它不是“基础性的”。但是,我也不会说,在游戏的这个阶段,拥有Linq(或等效的)语言特定的查询语言是真正的基础。也许在将来,但是现在您可以用许多不同的方式构造一个查询,从而产生显著不同的性能级别。

        8
  •  0
  •   Bill K    15 年前

    这听起来很像鲁比的活跃记录,但我从来没有用过LINQ。两个都用过吗?(我本可以将此作为评论发布,但我真的想更新答案——我可能错了,所以会被否决:)

    (实际上,我应该说ar和linq to sql一样,据我所知,它们还没有为其他目标实现ar)