sql >> データベース >  >> RDS >> Sqlserver

EF4.1コード上のMvc-Mini-Profilerv1.7-最初のプロジェクトはSQLをプロファイリングしません

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

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

    接続ファコトリーは新しい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>
    

    これは、Miniprofilernugetパッケージを使用するMVCとasp.netの両方のWebフォームで問題なく機能します。また、グローバルアクションフィルターの一部としてプロファイリングを自動構成するnugetパッケージの新しいMVCバージョンも確認します。




    1. キーワードによるOracleパーティション

    2. SQLで一時テーブルを作成する方法は?

    3. データベース(SQL Serverなど)にトランザクションをコミットしないとどうなりますか?

    4. userIDが一意である最初と最後のタイムスタンプを選択します