title: In LINQ-SQL, wrap the DataContext is an using statement - pros cons
body: <p>Can someone pitch in their opinion about pros/cons between wrapping the DataContext in an using statement or not in LINQ-SQL in terms of factors as performance, memory usage, ease of coding, right thing to do etc.</p>
  
  <p><strong>Update</strong>: <em>In one particular application, I experienced that, without wrapping the DataContext in using block, the amount of memory usage kept on increasing as the live objects were not released for GC. As in, in below example, if I hold the reference to List of q object and access entities of q, I create an object graph that is not released for GC.</em> </p>
  
  <p>DataContext with using</p>
  
  <pre><code>    using (DBDataContext db = new DBDataContext())
      {
          var q = 
              from x in db.Tables
              where x.Id == someId
              select x;
  
          return q.toList();
      }
  </code></pre>
  
  <p>DataContext without using and kept alive</p>
  
  <pre><code>  DBDataContext db = new DBDataContext()
    var q = 
          from x in db.Tables
          where x.Id == someId
          select x;
  
      return q.toList(); 
  </code></pre>
  
  <p>Thanks. </p>