OrmLite 生成的 Sql 语句如何登录到像 NLog 这样的日志框架的最佳方式是什么?我知道DbConnection 上的GetLastSql()方法,但还有其他方法吗?
我们希望在数据层中使用 OrmLite,并有可能记录 Windows 窗体应用程序的所有生成的 sql,该应用程序有几年,所有的 sql 都写在 GUI 中。性能是一个问题,所以我们决定使用 OrmLite(无上下文方法)
OrmLite 生成的 Sql 语句如何登录到像 NLog 这样的日志框架的最佳方式是什么?我知道DbConnection 上的GetLastSql()方法,但还有其他方法吗?
我们希望在数据层中使用 OrmLite,并有可能记录 Windows 窗体应用程序的所有生成的 sql,该应用程序有几年,所有的 sql 都写在 GUI 中。性能是一个问题,所以我们决定使用 OrmLite(无上下文方法)
您必须创建自己的 ProfiledDbConnection 类实现,将日志写入 NLog。现在,当您创建 OrmLiteConnectionFactory 类集连接过滤器的实例时,您可以这样做:
var db = new OrmLiteConnectionFactory(
"ConnectionString", true,
SqliteOrmLiteDialectProvider.Instance) {
ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
};
这里有 ProfiledDbConnection 的 src https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack/MiniProfiler/Data/ProfiledDbConnection.cs