是否可以将Mini Profiler与Simple.DataLibrary一起使用?我用它从MySql中获取数据,如下所示:
var db = Database.OpenConnection(ConnectionString);
var book = db.Books.FindById(id);
如何使用此代码使用Profiler?
您可以告诉Simple.Data使用预先存在的连接,并使用已配置的连接包装您的连接:
var db = Database.OpenConnection(ConnectionString);
using (var rawCnn = new MySqlConnection(ConnectionString))
using (var profiledCnn = new MvcMiniProfiler.Data.ProfiledDbConnection(rawCnn, MiniProfiler.Current);
{
profiledCnn.Open();
((AdoAdapter)db.GetAdapter()).UseSharedConnection(profiledCnn);
book = db.Books.FindById(id);
((AdoAdapter)db.GetAdapter()).StopUsingSharedConnection();
}
Simple.Data
中添加了一个新的挂钩,可以更好地与MiniProfiler集成。
AdoAdapter.ConnectionCreated += (o, args) => args.OverrideConnection(new ProfiledDbConnection((DbConnection)args.Connection, MiniProfiler.Current));
这个basicallt允许您连接到连接创建的事件,并用您自己的配置文件连接覆盖它。
注意:在撰写本文时,nuget包中还没有此更改。因此您需要自定义Simple.Data