根据Service Stack Ormlite documentation。我应该在调试模式下生成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>();
}
答案 0 :(得分:15)
您需要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语句的配置文件定时输出。这里有一个例子可以在这里找到: