title: EF CTP5 which code generation item to choose?
body: <p>With EF 4.1 on the way and CTP5 being available for few months now I've decided to try out the new functionality. As I see, there are multiple generation items available (<code>DbContext</code> and three different <code>ObjectContext's</code>). I also noticed they are not interchangable - I was first using the POCO ObjectContext in one of my app and today switched to DbContext and my entire repository broke. It was based on <code>LoadProperty()</code> methods, <code>DeleteObject()</code> and <code>AddObject()</code> methods and those are all missing on <code>DbSet</code> class which is used in <code>DbContext</code> generation.</p>
  
  <p>I know there's a great blog series here <a href="http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-1-introduction-and-model.aspx" rel="nofollow">http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-1-introduction-and-model.aspx</a> introducing the new functionality but it never really says when to choose what.</p>
  
  <p>My requirements are:</p>
  
  <ul>
  <li>ASP.NET MVC application, so lazy
  loading mostly won't work coz at page
  render it will say that context has
  already been disposed (that's why I
  need easy support for explicit
  loading - in EF4 I did it via
  <code>Include()</code>, using POCO context I did
  it through <code>LoadProperty()</code> and now
  in <code>DbContext</code> I believe I will use
  the strongly typed <code>Include()</code>).</li>
  <li>We probably won't be needing code-first
  features (but you never know).</li>
  </ul>