Link Search Menu Expand Document


A trace-logging class that is used when executing an operation. It provides vital information of the actual execution via the ITrace object.


  • ExecutionTime - handles the total elapsed time of the actual execution.
  • Parameter - handles the parameters of the execution.
  • Result - handles the actual execution result.
  • Statement - handles the actual SQL statement generated by the library.


All methods of the ITrace interface is using this class. You can debug to any method of the ITrace-based classes to trace the actual execution information.

Let us say you have a custom trace class named MyCustomTrace. Then, you pass this object when you call the Insert operation.

using (var connection = new SqlConnection(connectionString))
    connection.Insert<Person>(person, trace: new MyCustomTrace());

Then, you can set a breakpoint at your MyCustomTrace.BeforeInsert() method and see the actual trace information before the actual execution via CancellableTraceLog argument.

public void BeforeInsert(CancellableTraceLog log)
    Console.WriteLine($"BeforeInsert: {log.Statement}");
    if (log.Statement.IndexOf("INSERT") <= 0)

Also, you can set a breakpoint at your MyCustomTrace.AfterInsert() method and see the actual trace information after the insert operation.

public void AfterInsert(TraceLog log)
    Console.WriteLine($"AfterInsert: {log.Statement}, TotalTime: {log.ExecutionTime.TotalSeconds} second(s)");

You can do the same in all operational method of the ITrace-based classes.