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

时间:2009-03-06 20:07:22

标签: linq upgrade maintainability

我开始在代码中使用LINQ作为真正的查询语言来帮助提高可读性。直到最近我才害怕触摸LINQ,因为LINQ to SQL团队在Entity Framework团队下移动(试图在这里忽略那个对话) - LINQ查询语言将是一个安全的赌注(在这个快速的任何事情中)移动行业)?

2 个答案:

答案 0 :(得分:5)

值得区分“LINQ”和“特定的LINQ提供商”。我认为可以肯定地说LINQ本身就存在了 - 而且现象对于通过LINQ to Objects进行的进程内集合处理非常有用。

至于哪个LINQ提供商将“赢”(如果有的话) - 这是一个更难打电话。

我会当然了解LINQ本身的基本原理 - 而LINQ to XML也是一个可爱的XML API。

答案 1 :(得分:3)

Jon说,区分LINQ提供商非常重要。例如

  • LINQ to objects:这是基于IEnumerable< T>并且是如此根深蒂固的BCL,我发现这很难在任何地方
  • LINQ to SQL:我几乎不像LINQ那样使用它,但我知道它有很好的追随者,人们似乎喜欢它。

警告:我在LINQ工作,所以我在这里很偏颇。

对于LINQ来说真正的好处是,我认为我们确实做对了,任何人都可以编写LINQ提供程序。所需要的只是一些正确名称的可绑定方法,突然间你有了查询语法。

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

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

我个人更倾向于lambda / extension方法synatx,但结果代码确实没有什么不同。