为什么Single LINQ扩展方法创建查询选择TOP(2)?

Rus*_*ino 9 entity-framework

我正在查看我的探查器,看起来Linq扩展方法Single选择了2行.那么为什么SingleLINQ扩展方法会创建一个查询Select TOP(2)呢?不应该这样select top(1)吗?

Gab*_*abe 12

First只请求一个结果.Single请求两个结果,因为它只返回结果,如果只有一个结果集成员.如果有零或两个(或多于两个)它会抛出异常,所以它必须至少请求两个结果.