【问题标题】:Does Microsoft recommend method or query syntax? [closed]Microsoft 是否推荐方法或查询语法? [关闭]
【发布时间】:2019-10-05 11:23:15
【问题描述】:

Microsoft Net Core 3 是否推荐用于 Linq Entity Framework 查询的方法语法或查询语法?这是我们工作场所的一场辩论,我们很好奇。

这不是基于意见的问题,而是事实上,因为我正在寻找微软的推荐,而不是人们的意见。谢谢

【问题讨论】:

  • 查询语法是 C# 语言特性,因此与框架无关。
  • 这不是一个基于意见的问题,伙计们。微软可以客观地推荐一个、两个或一个都不推荐。这里的主观性是什么?玩够了这个权力游戏。呃。

标签: asp.net entity-framework linq .net-core .net-core-3.0


【解决方案1】:

也没必要推荐。它们是等效的,因为查询表达式被有效地“预处理”为方法语法。

我认为两者都知道是非常值得的:

  • 由于编译器引入了透明标识符,带有连接、分组等的查询往往更易于使用查询表达式进行阅读
  • 许多查询要么无法在查询表达式中表示,要么使用方法语法更易于阅读

彻底了解两者,并使用最适合任何给定场景的方法。

【讨论】:

  • 对您的观点的一些补充:1)let 在方法语法中不存在,并且在编写代码时可以作为一个方便的快捷方式。 2)查询语法中不存在某些结构(例如SelectMany()),将查询与方法结合起来看起来很丑。 3) 方法语法更容易组合,因为查询组件包含自己的 lambda 参数声明,因此它们可以独立移动,而不必担心对先前声明的查询参数的依赖性。
  • 谢谢,问题是,微软官方的建议是什么?
  • @AlexRodgers:由于我给出的原因,没有官方推荐。这就像询问是否有使用stringint 的建议——你使用最适合你情况的那个;在这种情况下,它会导致最易读的代码。
猜你喜欢
  • 2019-12-14
  • 2011-01-06
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 2018-10-29
  • 2020-04-30
相关资源
最近更新 更多