Entity framework 为什么单个LINQ扩展方法创建一个查询Select TOP(2)?

Entity framework 为什么单个LINQ扩展方法创建一个查询Select TOP(2)?,entity-framework,Entity Framework,我正在查看我的分析器,似乎Linq扩展方法Single选择了2行。那么为什么SingleLINQ扩展方法创建一个查询selecttop(2)?它不应该是选择top(1)吗?首先只请求一个结果Single请求两个结果,因为它仅在结果集中只有一个成员时返回结果。如果有零个或两个(或两个以上)异常,它将抛出一个异常,因此它必须请求至少两个结果。Single()应查询前2个First()应该只查询一个。你确定你不是在看一个单一的查询吗?@Gabe你说得对。我看错了问题。。真可惜:(但仍然..想知道为什么

我正在查看我的分析器,似乎Linq扩展方法
Single
选择了2行。那么为什么
Single
LINQ扩展方法创建一个查询
selecttop(2)
?它不应该是
选择top(1)
吗?

首先
只请求一个结果
Single
请求两个结果,因为它仅在结果集中只有一个成员时返回结果。如果有零个或两个(或两个以上)异常,它将抛出一个异常,因此它必须请求至少两个结果。

Single()
应查询前2个
First()
应该只查询一个。你确定你不是在看一个
单一的
查询吗?@Gabe你说得对。我看错了问题。。真可惜:(但仍然..想知道为什么对前2名进行单一查询?这是因为它需要知道是否得到多个结果?是的,知道是否只有一个结果的唯一方法是请求2,并确保只得到1。顺便说一句,对于投票过于本地化的查询…这是如何过于本地化的,因为许多人使用LINQ和实体框架。)这里,“太本地化”是针对只适用于您的问题。很可能您是唯一一个想知道为什么
第一个
会导致选择两行的人。我修复了该问题,因此现在不应该关闭它。