我一直在反對這個問題我的頭撞了一會兒。今天做了一些更多的挖掘,並能夠得到它的工作。這是我做的。在MiniProfiler.cs我定義如下兩種方法:
public static DbConnection GetConnection()
{
var connectionString = ConfigurationManager.ConnectionStrings["MyModelConnectionString"].ConnectionString;
var entityConnStr = new EntityConnectionStringBuilder(connectionString);
var realConnection = new SqlConnection(entityConnStr.ProviderConnectionString);
return realConnection;
}
public static IMyModelsInterface GetProfiledContext()
{
var connection = new MvcMiniProfiler.Data.EFProfiledDbConnection(GetConnection(), MiniProfiler.Current);
var context = connection.CreateObjectContext<MyModel>();
return context;
}
注:這兩種方法可能不應該在MinProfilerPackage定義,但是這是我第一次過去/黑客得到它的工作。
然後調用GetProfiledContext()並使用返回的上下文,只要您想要查詢配置文件。我使用Ninject將此配置文件注入到我的控制器工廠中。我的電話看起來是這樣的:
public NinjectControllerFactory()
{
ninjectKernel = new StandardKernel();
AddBindings();
}
private void AddBindings()
{
var context = MiniProfilerPackage.GetProfiledContext();
IUnitOfWork uow = new UnitOfWork(context);
ninjectKernel.Bind<IRepository>().To<GenericRepository>().WithConstructorArgument("paramUnitOfWork", uow);
// ... rest of the method
}
NinjectControllerFactory是我的控制器工廠,獲取的Application_Start設置。
protected void Application_Start()
{
// Add in DI for controller and repo associations
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
// ... rest of the method
}
來源
2012-02-27 01:54:45
tbs