ServiceStack OrmLite Sql Query Logging

c#, ormlite-servicestack, servicestack

Solution

You would need the debug build of OrmLite to see the SQL output. There are a couple of other ways you can view the last sql:

Console.WriteLine(dbCmd.GetLastSql());

You can also profile the db connection by setting a connection filter, which you can do with:

var dbFact = new OrmLiteConnectionFactory(
   "Data Source={0};Version=3;".Fmt(dbFileName), true, 
   SqliteOrmLiteDialectProvider.Instance) {
   ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
};

Which if you ran this in ServiceStack will let you see the profiled timing outputs of all the SQL statements. An example of what this looks like is available here:

https://gist.github.com/1787443

Problem

As per the Service Stack Ormlite documentation. I should generate the sql query in debug mode. But, I am not able to see those queries. Simple code ``` private static readonly string DataDirLoc = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\TargetIntegration\\Test\\Debug\\"; private readonly string dbFileName = DataDirLoc + "Test.db3"; [Test] public void Can_Generate_log() { //var writer = new TextWriterTraceListener(System.Console.Out); //Debug.Listeners.Add(writer); Debug.Write("this is a try"); var dbFact = new OrmLiteConnectionFactory("Data Source={0};Version=3;".FormatParams(dbFileName), true, SqliteOrmLiteDialectProvider.Instance); IDbConnection dbConnection = dbFact.OpenDbConnection(); var dbCommand = dbConnection.CreateCommand(); dbCommand.CreateTable<Contact>(); } ```

Original source