代码之家  ›  专栏  ›  技术社区  ›  Toran Billups

我应该担心linq(查询语言)的升级路径吗?

  •  0
  • Toran Billups  · 技术社区  · 16 年前

    我开始在代码中使用LINQ作为真正的查询语言,以帮助提高可读性。直到最近,我都不敢碰Linq,因为Linq-to-SQL团队在实体框架团队(尝试忽略这里的对话)下移动——在未来,查询语言Linq会是一个安全的赌注吗(就像这个快速移动的行业中的任何东西一样)?

    2 回复  |  直到 16 年前
        1
  •  5
  •   Jon Skeet    16 年前

    有必要区分“LINQ”和“特定的LINQ提供者”。我认为可以肯定地说Linq本身就在这里待着——而且 惊人地 用于通过LINQ to对象进行进程内收集处理。

    至于LINQ提供商会“赢”(如果有的话),这是一个很难打电话的赌注。

    我愿意 当然 不过,了解Linq本身的基本原理——LinqtoXML也是一个不错的XML API。

        2
  •  3
  •   JaredPar    16 年前

    正如乔恩所说,区分LINQ供应商非常重要。例如

    • Linq to Objects:这是基于IEnumerable<t>的,它深深地植根于BCL中,我发现这很难实现。
    • LinqtoSQL:我并没有像使用Linq那样使用它,但我知道它有很好的追随者,人们似乎喜欢它。

    警告:我在Linq工作,所以我对这里很有偏见。

    关于Linq,我认为我们真正正确的地方是,任何人都可以编写一个Linq提供者。所需要的只是一些具有正确名称的可绑定方法,突然间您就有了查询语法。

    var query = from it in someCollection select it.SomeProperty;
    

    我可以在不使用3.5框架的情况下编写此语句。我有 my own LINQ Provider 它适用于2.0框架,并且与编译器中使用的查询语法兼容。

    我个人更倾向于lambda/extension方法synatx,但最终的代码并没有什么不同。