具有Simple.Data的迷你档案器



是否可以将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

相关内容

  • 没有找到相关文章

最新更新