C# linq to sql - 在 linq 末尾移动 FirstOrDefault() 会中断查询
下面两段代码有什么区别?
这会返回我期望的数据......
return productTable.FirstOrDefault(p => p.ProductId == productId);
这不会......
return productTable.Where(x => x.ProductId == productId).FirstOrDefault();
我主要只是想知道这两者之间是否存在逻辑差异。
What is the difference between the two pieces of code below?
This returns the data I expect....
return productTable.FirstOrDefault(p => p.ProductId == productId);
This doesn't....
return productTable.Where(x => x.ProductId == productId).FirstOrDefault();
I'm mainly just wondering if there's a logical difference between these two.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这些查询应该基本相同。无参数版本的
FirstOrDefault()
仅获取查询中可用的第一条记录,如果没有可用记录,则获取默认值(即 null)。编辑2 正如评论中适当指出的那样,我应该使用 LINQ-to-SQL。以下是 LINQ-to-SQL 的示例:
输出(请注意查询完全相同):
编辑:以下是示例代码,演示它们是同一件事:
Those queries should be essentially identical. The parameterless version of
FirstOrDefault()
just grabs the first record available from the query, or default value (i.e., null) if no records are available.Edit 2 As duly pointed out in the comments, I should be using LINQ-to-SQL. Here is a sample with LINQ-to-SQL:
Output (notice the queries are exactly identical):
Edit: Here is sample code to demonstrate they are the same thing: