Dapper 中的 QuerySingle 或 QueryFirst 内部如何工作?

How does internally QuerySingle or QueryFirst in Dapper work?

我看到 Dapper 有 QuerySingle 和 QueryFirst 方法。 QuerySingle 是否检查 sql returns 只有一行并映射它? QueryFirst returns第一行独立映射有多少行?

如果我想进行任何查询,例如 anyItemSold:

Select Top 1 1 From Items Where IsSold = 1

我是否必须这样写并可能使用 ExecuteScalar?

FirstSingleDefault 的工作方式与 Dapper 的一般工作方式相同。

请参考this tutorial:

QuerySingle method is an extension method that can be called from any object of type IDbConnection. It can execute a query and map the first result and throws an exception if there is not exactly one element in the sequence.

此外,同一教程提供了简单的 table 来了解它们的工作原理:

关于ExecuteScalar

It executes the query, and returns the first column of the first row in the result set returned by the query. The additional columns or rows are ignored.

如果您的查询 return 单值(单行单列)那么这是最佳选择。