title: Best practice for reusing SqlConnection
body: <p>I've come from Java experience and am trying to start with C#. I've read <a href="https://stackoverflow.com/questions/16985876/sqlconnection-sqlcommand-sqldatareader-idisposable">SqlConnection SqlCommand SqlDataReader IDisposable</a> and I can understand that the best practice to connecting to a DB is wrapping <code>SqlConnection</code>, <code>SqlCommand</code> and <code>SqlDataReader</code> in their own <code>using</code> block.</p>
  
  <p>But in Java we use to encapsulate the connection into a factory method, create it only once, and reuse it for all queries, even multithreaded ones. Only statements and result sets are created for each query and closed ASAP.</p>
  
  <p>Isn't creating a new <code>SqlConnection</code> for each query kinda overkill? Can't it be reused?</p>