4

I MiniProfiler.MVC3-1.7パッケージを設定していません。コントローラとビューのプロファイリングはうまくいきますが、私が本当に興味を持っているのはSQLプロファイリングです。私はこれを働かせることができませんでした。私はSQL 2008データベースでEF Code Firstを使用しています。私はこの記事ですべての提案に従っているEF 4.1のMvc-Mini-Profiler v1.7コードファーストプロジェクトは、昨日私のプロジェクトでSQL

..私は私のようにSQL接続を設定しているminiprofiler.csで

mvcminiprofiler-on-ef-4-1-code-first-project-doesnt-profile-sql

...

var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["CMDBMVC3"].ConnectionString); 

私のWeb.config db接続は...

<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" /> 

私がブレークポイントをmi ni-profiler行は正しいdb接続を指しています。私はこの時点で何をすべきか分からない。 SQLプロファイリングの仕組みを理解していれば嬉しいです。

+0

誰も私にこれを手伝うことができますか?私はまだSQLプロファイリングを動作させることができません。誰もが提供できる援助を感謝します。 –

答えて

0

私はContextコンストラクタ内でEF Codeとミニプロファイラを使用します。新しい接続ファクトリを作成し、これをProfiledDbConnectionFactoryメソッドに渡します。これにより、プロファイルのDefaultConnectionFactoryとして設定できるプロファイル接続が返されます。

public MyConext() 
{ 
    var factory = new ConnectionFactory(); 
    var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory); 
    Database.DefaultConnectionFactory = profiled; 
} 

接続のfacotryはちょうど新しいSQL接続

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

      return cnn;    
    } 

を返すまた、Web構成ファイルにProfiledDBProviderを追加する必要があります。バージョン番号が正しいことを確認してください。

<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のWebフォームの両方で私のために正常に動作します。また、グローバルアクションフィルタの一部として自動設定するNugetパッケージの新しいMVCバージョンもチェックします。

+0

ありがとうございます。私はMiniProfiler.MVC3 v1.7を既に使用しています。このバージョンは、App_Startフォルダにminiprofiler.csを作成します。鉱山は 'コード' パブリック静的ボイド開始前() \t {\t VAR工場=新しいSqlConnectionFactory(ConfigurationManager.ConnectionStrings [ "CMDBMVC3"]のConnectionString)を次のようにポピュレートされます。 var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory); \t \t Database.DefaultConnectionFactory = profiled; \t \t –

+0

私は実際に同じ2つの別々のコンピュータ上の2つの別々のプロジェクトで全く同じ応答を持つminiprofiler.mvc3 v1.7を試しました。 SQLプロファイリングは全くありません。私は明らかに間違ったことをしています。私はそれが何であるか把握できません。 –

関連する問題