让我们举一个例子:
const string PERSON_SQL = "SELECT Id " +
"FROM Persons " +
"WHERE LastName=@LastName AND FirstName=@FirstName";
patientId = connection.ExecuteScalar<int>(PERSON_SQL, new
{
LastName = _entity.Lastname,
FirstName = _entity.Firstname
});
我想用参数值打印出实际的SQL查询以进行调试。我确信它有一些扩展或辅助功能......
Dapper本身不包含该功能,作者倾向于使用MiniProfiler来捕获SQL查询(参见Marc Gravell关于类似内容的回答 )。
您也可以使用SQL事件探查器,假设您正在使用SQL数据库。
最后,如果没有“现成”的东西适合您的需求,您可以包装与Dapper一起使用的数据库连接和命令,并在调用ExecuteReader,ExecuteScalar等时捕获/记录查询(和参数)。我在回答有关使用Dapper with Access的问题时得到了一些示例代码(尽管示例代码与数据库无关,因此您可以将“WrappedDbConnection”与您当前使用的任何数据库一起使用)。