ServiceStack OrmLite Sql 查询日志记录 [英] ServiceStack OrmLite Sql Query Logging
问题描述
根据 Service Stack Ormlite 文档.我应该在调试模式下生成 sql 查询.但是,我看不到这些查询.简单的代码
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>();
}
推荐答案
您需要 OrmLite 的调试版本才能查看 SQL 输出.您可以通过其他几种方式查看最后一条 sql:
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)
};
如果您在 ServiceStack 中运行它,您将看到所有 SQL 语句的分析计时输出.此处提供了一个示例:
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
这篇关于ServiceStack OrmLite Sql 查询日志记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!