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

Orm Dapper.net:如何使用参数值打印查询,orm,dapper,Orm,Dapper,让我们举一个例子: const string PERSON_SQL = "SELECT Id " + "FROM Persons " + "WHERE LastName=@LastName AND FirstName=@FirstName"; patientId = connection.ExecuteScalar<int>(PERSON_SQL, new { Last

让我们举一个例子:

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
});
const string PERSON\u SQL=“选择Id”+
“来自个人”+
“其中LastName=@LastName和FirstName=@FirstName”;
patientId=connection.ExecuteScalar(PERSON\u SQL,new
{
LastName=\u entity.LastName,
FirstName=\u entity.FirstName
});

我想打印出带有参数值的实际SQL查询,以便进行调试。我确信它有一些扩展或帮助函数…

Dapper本身不包括该功能,作者倾向于使用它来捕获SQL查询(请参阅)

您还可以使用SQL探查器,假定您使用的是SQL数据库


最后,如果没有什么“现成的”适合您的需要,您可以包装与Dapper一起使用的数据库连接和命令,并在ExecuteReader、ExecuteScalar等时捕获/记录查询(和参数)。。我们称之为。我在中有一些示例代码(虽然示例代码与数据库无关,因此您可以将“WrappedDbConnection”用于您目前使用的任何数据库)。

SQL探查器需要特殊的权限跟踪才能工作。MiniProfiler的情况也一样吗?MiniProfiler示例适用于web应用程序。是否有C#/WPF微型档案器包?我想如果没有太多的代码需要重写,那么使用包装的DB连接将是最合适的。否则,应该使用SQL探查器。我自己的一个问题有一个答案,但在过去4年中一直没有更新。(尽管最近已发出请求更新的请求。)