Dapper.net: 如何使用参数值打印查询
Dapper.net: How to print query with parameter values
举个例子:
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 for capturing SQL queries (see Marc Gravell's answer about something similar)。
您还可以使用 SQL Profiler,前提是您使用的是 SQL 数据库。
最后,如果没有 "off the shelf" 满足您的需求,您可以包装您与 Dapper 一起使用的数据库连接和命令,并在 ExecuteReader、ExecuteScalar 等时捕获/记录查询(和参数)。叫。我在 my answer to a question someone had about using Dapper with Access 中有一些示例代码(尽管示例代码与数据库无关,因此您可以将 "WrappedDbConnection" 与您目前使用的任何数据库一起使用)。
举个例子:
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 for capturing SQL queries (see Marc Gravell's answer about something similar)。
您还可以使用 SQL Profiler,前提是您使用的是 SQL 数据库。
最后,如果没有 "off the shelf" 满足您的需求,您可以包装您与 Dapper 一起使用的数据库连接和命令,并在 ExecuteReader、ExecuteScalar 等时捕获/记录查询(和参数)。叫。我在 my answer to a question someone had about using Dapper with Access 中有一些示例代码(尽管示例代码与数据库无关,因此您可以将 "WrappedDbConnection" 与您目前使用的任何数据库一起使用)。