title: MVC-Mini-Profiler falsely showing duplicate queries
body: <p>I have been playing around with MVC-Mini-Profiler, and found it very useful. However, on all pages I trace on, I get reports of duplicate queries, like the one below.</p>
  
  <p>However, I have traced the queries in SQL Server Profiler, and there is not doubt it only hits the DB once.</p>
  
  <p>Am I missing a concept here or have I set it up the wrong way? I have searched high and low for people with similar problems, with no luck, so I doubt there is a bug.</p>
  
  <p><img src="https://i.stack.imgur.com/lTwop.png" alt="Trace"></p>
  
  <pre><code>http://localhost:27941/clubs
  T+175.2 ms
  Reader
  13.6 ms
  utePageHierarchy Execute System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator GetResults Execute ExecuteStoreCommands
  SELECT 
  [Extent1].[TeamId] AS [TeamId], 
  [Extent1].[Title] AS [Title], 
  [Extent1].[TitleShort] AS [TitleShort], 
  [Extent1].[LogoImageId] AS [LogoImageId], 
  [Extent1].[Slug] AS [Slug], 
  (SELECT 
      COUNT(1) AS [A1]
      FROM [dbo].[Athletes] AS [Extent2]
      WHERE [Extent1].[TeamId] = [Extent2].[TeamId]) AS [C1]
  FROM [dbo].[Teams] AS [Extent1]
  WHERE 352 = [Extent1].[CountryId]
  
  http://localhost:27941/clubs
  T+175.4 ms
  DUPLICATE Reader
  13.4 ms
  utePageHierarchy Execute System.Collections.Generic.IEnumerable&lt;T&gt;.GetEnumerator GetResults Execute ExecuteStoreCommands
  SELECT 
  [Extent1].[TeamId] AS [TeamId], 
  [Extent1].[Title] AS [Title], 
  [Extent1].[TitleShort] AS [TitleShort], 
  [Extent1].[LogoImageId] AS [LogoImageId], 
  [Extent1].[Slug] AS [Slug], 
  (SELECT 
      COUNT(1) AS [A1]
      FROM [dbo].[Athletes] AS [Extent2]
      WHERE [Extent1].[TeamId] = [Extent2].[TeamId]) AS [C1]
  FROM [dbo].[Teams] AS [Extent1]
  WHERE 352 = [Extent1].[CountryId
  </code></pre>
  
  <p>I use EF4 and have implemented the context like this:</p>
  
  <pre><code>public class BaseController : Controller
  {
      public ResultsDBEntities _db; 
  
      public BaseController()
      {
          var rootconn = ProfiledDbConnection.Get(GetStoreConnection(ConfigurationManager.ConnectionStrings["ResultsDBEntities"].ConnectionString));
          var conn = ProfiledDbConnection.Get(rootconn);
          _db = ObjectContextUtils.CreateObjectContext&lt;ResultsDBEntities&gt;(conn);
      }
  
      public static DbConnection GetStoreConnection&lt;T&gt;() where T : System.Data.Objects.ObjectContext
      {
          return GetStoreConnection("name=" + typeof(T).Name);
      }
  
      public static DbConnection GetStoreConnection(string entityConnectionString)
      {
          DbConnection storeConnection;
  
          // Let entity framework do the heavy-lifting to create the connection.
          using (var connection = new EntityConnection(entityConnectionString))
          {
              // Steal the connection that EF created.
              storeConnection = connection.StoreConnection;
  
              // Make EF forget about the connection that we stole (HACK!)
              connection.GetType().GetField("_storeConnection",
                  BindingFlags.NonPublic | BindingFlags.Instance).SetValue(connection, null);
  
              // Return our shiny, new connection.
              return storeConnection;
          }
      }
  }
  </code></pre>