ServiceStack OrmLite SQL查询日志(ServiceStack OrmLite

2019-07-30 11:45发布

按照该服务栈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>();
    }

Answer 1:

您需要OrmLite的调试版本来查看SQL输出。 有一对夫妇,你可以查看最近的SQL其他方式:

Console.WriteLine(dbCmd.GetLastSql());

您也可以通过配置文件设置连接过滤器,它可以用做数据库连接:

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

其中,如果你跑这ServiceStack将让你看到所有的SQL语句的异形定时输出。 什么这看起来像一个例子可以在这里找到:

https://gist.github.com/1787443



文章来源: ServiceStack OrmLite Sql Query Logging