【问题标题】:Dapper.net: How to print query with parameter values [duplicate]Dapper.net:如何使用参数值打印查询 [重复]
【发布时间】:2016-09-08 19:27:13
【问题描述】:

举个例子:

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

【问题讨论】:

    标签: orm dapper


    【解决方案1】:

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

    假设您使用的是 SQL 数据库,您也可以使用 SQL Profiler。

    最后,如果没有任何“现成的”适合您的需求,您可以包装与 Dapper 一起使用的数据库连接和命令,并在调用 ExecuteReader、ExecuteScalar 等时捕获/记录查询(和参数)。我在my answer to a question someone had about using Dapper with Access 中有一些示例代码(尽管示例代码与数据库无关,因此您可以将“WrappedDbConnection”与您目前使用的任何数据库一起使用)。

    【讨论】:

    • SQL Profiler 需要特殊权限 TRACE 才能工作。 MiniProfiler 也是这样吗?
    • MiniProfiler 示例适用于 Web 应用程序。是否有 C#/WPF MiniProfiler 包?如果要重写的代码不多,我想使用包装的数据库连接将是最合适的。否则应使用 SQL 分析器。
    • 有一个MiniProfiler.Windows 可以回答我自己的一个问题,但过去 4 年没有更新。 (尽管最近已经完成了更新的拉取请求。)
    猜你喜欢
    • 2019-03-22
    • 2014-12-01
    • 2010-12-15
    • 2016-11-09
    • 2019-05-14
    • 2012-12-24
    • 1970-01-01
    相关资源
    最近更新 更多