据我了解,我们有 LINQ 和 Lambda 表达式。使用 Lambda 表达式是否更可取,因为它们提供了 LINQ 可能没有的更多功能。
LINQ vs Lambda
我认为您的意思是query
vs.method
语法。
编译器会将查询语法转换为方法语法。性能是一样的。
var x = from p in XYZ where p.Property == "SomeValue"
是相同的
var x = XYZ.Where(x => x.Property == "SomeValue")
这更多是语法问题,取决于您想要做什么。可能性是一样的,性能是一样的。有时方法语法更容易阅读,有时查询语法更容易阅读。
在我们的应用程序中,我们倾向于根据开发人员的偏好混合和匹配它们。我的经验法则是,如果查询需要 Join 或 Group By,我使用 Lamda,如果它是一个简单的过滤语句,我使用 LINQ。
两者最终都会产生一条 SQL 语句,我建议http://www.linqpad.net/查看由您的 LINQ 或 Lamda 语句产生的查询和执行计划。