Правильный способ профилирования DbContext с использованием MiniProfiler и EF 5 и Autofac
Сайт MiniProfiler дает следующий код для создания Entity FrameworkObjectContext
:
public static MyModel Get()
{
var conn = new StackExchange.Profiling.Data.EFProfiledDbConnection(GetConnection(), MiniProfiler.Current);
return ObjectContextUtils.CreateObjectContext<MyModel>(conn); // resides in the MiniProfiler.EF nuget pack
}
Однако, используя Entity Framework 5, я не используюObjectContext
- скорее я используюDbContext
, Я не могу вставить название модели здесь, так какCreateObjectContext<T>()
метод ожидаетT
быть типомObjectContext
, (По той же причине код, указанный вэтот ответ тоже не работает).
Кроме того, я использую autofac для инициализации моих соединений с БД. Это регистрируется со следующим (MyData
= имя моего EF DataContext):
Builder.RegisterType<MyData>().As<DbContext>().InstancePerHttpRequest();
Итак, объединяя две части: как я могу использовать autofac для инициализации моего DbContext, связанного с MiniProfiler.EF? И если это невозможно, по крайней мере, как я могу выполнить первую часть (создайте заводской метод для MiniProfiler.EF, чтобы вернутьDbContext
)?