Is there any way to trace\log the sql using Dapper?

后端 未结 6 1745
北恋
北恋 2020-12-05 09:26

Is there a way to dump the generated sql to the Debug log or something? I\'m using it in a winforms solution so the mini-profiler idea won\'t work for me.

6条回答
  •  死守一世寂寞
    2020-12-05 09:57

    Dapper does not currently have an instrumentation point here. This is perhaps due, as you note, to the fact that we (as the authors) use mini-profiler to handle this. However, if it helps, the core parts of mini-profiler are actually designed to be architecture neutral, and I know of other people using it with winforms, wpf, wcf, etc - which would give you access to the profiling / tracing connection wrapper.

    In theory, it would be perfectly possible to add some blanket capture-point, but I'm concerned about two things:

    • (primarily) security: since dapper doesn't have a concept of a context, it would be really really easy for malign code to attach quietly to sniff all sql traffic that goes via dapper; I really don't like the sound of that (this isn't an issue with the "decorator" approach, as the caller owns the connection, hence the logging context)
    • (secondary) performance: but... in truth, it is hard to say that a simple delegate-check (which would presumably be null in most cases) would have much impact

    Of course, the other thing you could do is: steal the connection wrapper code from mini-profiler, and replace the profiler-context stuff with just: Debug.WriteLine etc.

提交回复
热议问题