title: Migrating customized Linq-2-SQL to Entity Framework
body: <p>I have a data layer built on Linq-2-SQL in .net 3.5. We're looking at migrating to .Net 4. soonish. When we started the original development I was interested in using EF for the data layer, but found it wasn't really an option in .Net 3.5. Now that we're upgrading, I'm thinking it over again.</p>
  
  <p>I realise that L2S is still supported in .Net4, however I would be keen to switch to the more active area of development for the future proofing of a system that's likely to be core to the business for a fair while. (My understanding is based on statements such as "We said we would improve the core of it (L2S) and add customer requests where it makes sense but that Entity Framework would be the primary focus." from Damien Guard in the comments to <a href="http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40">this post</a>.</p>
  
  <p>What complicates it a bit is that we have made a few mods to our L2S implementation:</p>
  
  <ul>
  <li>We've customized the .tt generating file a fair bit, and L2ST4 slightly.</li>
  <li>We're using stored procs for all CRUD operations (which we generate automatically), as this  allows us to switch on/off a granular audit trail on specific tables as we need.</li>
  </ul>
  
  <p>Most of the rest of what we use I know will be ok because I've done it myself in EF4 (in fact a lot of it started life on an EF4 database), but I wanted to know if the above customizations are going to be problems.</p>
  
  <p>So:</p>
  
  <ul>
  <li>Can we still have a customized .tt type generating system (or something similar)?</li>
  <li>Can we still use our own defined sprocs for CRUD?</li>
  </ul>
  
  <p>NB: If we used EF I would probably use the Database First version.</p>