ServiceStack OrmLite Sql查询日志记录

Moh*_*hit 10 c# servicestack ormlite-servicestack

根据Service Stack Ormlite文档.我应该在调试模式下生成sql查询.但是,我无法看到这些疑问.简单的代码

 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>();
    }
Run Code Online (Sandbox Code Playgroud)

myt*_*thz 15

您需要OrmLite的调试版本才能看到SQL输出.您还可以通过其他几种方式查看最后一个sql:

Console.WriteLine(dbCmd.GetLastSql());
Run Code Online (Sandbox Code Playgroud)

您还可以通过设置连接筛选器来分析数据库连接,您可以执行以下操作:

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

如果您在ServiceStack中运行它,将允许您查看所有SQL语句的配置文件定时输出.这里有一个例子可以在这里找到:

https://gist.github.com/1787443