Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 EF 4.1代码优先项目上的Mvc Mini Profiler v1.7不';t配置文件SQL_Sql Server 2008_Asp.net Mvc 3_Entity Framework 4.1_Ef Code First_Mvc Mini Profiler - Fatal编程技术网

Sql server 2008 EF 4.1代码优先项目上的Mvc Mini Profiler v1.7不';t配置文件SQL

Sql server 2008 EF 4.1代码优先项目上的Mvc Mini Profiler v1.7不';t配置文件SQL,sql-server-2008,asp.net-mvc-3,entity-framework-4.1,ef-code-first,mvc-mini-profiler,Sql Server 2008,Asp.net Mvc 3,Entity Framework 4.1,Ef Code First,Mvc Mini Profiler,昨天我在项目中安装了MiniProfiler.MVC3-1.7包。控制器和视图评测工作正常,但我真正感兴趣的是SQL评测。我一直没能让它工作。我首先在SQL 2008数据库中使用EF代码 我遵循了这篇文章中的所有建议 在miniprofiler.cs中,我的SQL连接设置为 var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["CMDBMVC3"].ConnectionString);

昨天我在项目中安装了MiniProfiler.MVC3-1.7包。控制器和视图评测工作正常,但我真正感兴趣的是SQL评测。我一直没能让它工作。我首先在SQL 2008数据库中使用EF代码

我遵循了这篇文章中的所有建议

在miniprofiler.cs中,我的SQL连接设置为

 var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["CMDBMVC3"].ConnectionString);
我的Web.config数据库连接是

 <add name="CMDBMVC3" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI; AttachDBFilename=|DataDirectory|CMDB_MVC3.mdf;Initial Catalog=CMDB_MVC3;Trusted_Connection=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />


如果我在mini profiler行上放置一个断点,它将指向正确的db连接。我不知道现在还能做什么。如果您能告诉我如何使SQL分析正常工作,我将不胜感激。

我首先使用EF代码,在我的上下文构造函数中使用mini profiler,我将创建一个新的连接工厂并将其传递给ProfiledDbConnectionFactory方法。这将返回一个配置好的连接,然后您可以将其设置为上下文

public MyConext()
{
    var factory = new ConnectionFactory(); 
    var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
    Database.DefaultConnectionFactory = profiled;
}
ConnectionFacotry只返回一个新的sql连接

public class ConnectionFactory :IDbConnectionFactory
{
     public DbConnection CreateConnection()
     {
         var cnn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["SomeConnection"].ToString());

             return cnn;            
    }
您还需要将ProfiledDBProvider添加到web配置文件中。确保版本号适合您

<system.data>
    <DbProviderFactories>
      <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
      <add name="MvcMiniProfiler.Data.ProfiledDbProvider" invariant="MvcMiniProfiler.Data.ProfiledDbProvider"
              description="MvcMiniProfiler.Data.ProfiledDbProvider"
              type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
    </DbProviderFactories>
  </system.data>


对于我来说,使用Miniprofiler nuget包在MVC和asp.net webforms中都能很好地工作。我还想看看nuget软件包的新MVC版本,该软件包将自动配置评测作为全局操作过滤器的一部分

有人能帮我吗?我仍然无法让SQL分析正常工作。感谢任何人提供的帮助。非常感谢您的回复。我正在使用MiniProfiler.MVC3 v1.7。此版本已在App_Start文件夹中创建MiniProfiler.cs。Mine按如下方式填充'code'public static void PreStart(){var factory=new SqlConnectionFactory(ConfigurationManager.ConnectionStrings[“CMDBMVC3”].ConnectionString);var profiled=new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);Database.DefaultConnectionFactory=profiled;}实际上,我已经在两台独立的计算机上的两个独立项目上尝试了miniprofiler.mvc3 v1.7,并且得到了完全相同的响应。根本没有SQL分析。很明显我做错了什么我就是不知道是什么。