Dapper.net:如何使用参数值打印查询

时间:2016-09-06 09:47:46

标签: orm dapper

让我们举一个例子:

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查询以进行调试。我确信它有一些扩展或辅助功能......

1 个答案:

答案 0 :(得分:1)

Dapper本身不包含该功能,作者倾向于使用MiniProfiler来捕获SQL查询(参见Marc Gravell's answer about something similar)。

您也可以使用SQL事件探查器,假设您正在使用SQL数据库。

最后,如果没有什么&#34;现成的&#34;根据您的需要,您可以包装与Dapper一起使用的数据库连接和命令,并在调用ExecuteReader,ExecuteScalar等时捕获/记录查询(和参数)。我在my answer to a question someone had about using Dapper with Access中有一些示例代码(虽然示例代码与数据库无关,因此您可以使用&#34; WrappedDbConnection&#34;以及您当前使用的任何数据库)。