在OrmLite中记录sql语句(ServiceStack)

时间:2013-07-30 11:27:52

标签: ormlite-servicestack

OrmLite生成的Sql语句如何登录到NLog等Logging框架的最佳方法是什么?我知道DbConnection上的方法GetLastSql()但还有另一种方法吗?

我们希望在数据层中使用OrmLite,并且可以记录所有生成的Windows窗体应用程序的sql,该应用程序有几年的时间,并且所有的sql都是在GUI中编写的。性能是一个问题所以我们决定采用OrmLite(无上下文方法)

1 个答案:

答案 0 :(得分:2)

您必须创建自己的ProfiledDbConnection类实现,将日志写入NLog。现在,当您创建OrmLiteConnectionFactory类设置连接过滤器的实例时,您可以这样做:

 var db = new OrmLiteConnectionFactory(
   "ConnectionString", true, 
   SqliteOrmLiteDialectProvider.Instance) {
   ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
};

这里有ProfiledDbConnection https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack/MiniProfiler/Data/ProfiledDbConnection.cs

的src