title: Database changes, backward compatibility , Entity Framework
body: <p>My context: C#, EF, SQL Server 2012.</p>
  
  <p>There are 2 separate applications (services), let's call them X and Y.</p>
  
  <ul>
  <li>Service X = web service API that is used for our external clients to communicate with our product.</li>
  <li>Service Y = our Youtube service that communicates using google API.</li>
  </ul>
  
  <p>X &amp; Y run separately, there is no communication, but they have access to the same database.</p>
  
  <p>Example: External client provides data using <code>X</code> api. It is stored in database.
  <code>Y</code> service looks at database and processes ( uploads / synchronizes videos in youtube channel.)</p>
  
  <p>Now business dictates : additional data needs to be added. </p>
  
  <p>So API of X needs to be extended. And Database needs to be extended.</p>
  
  <p>Y needs to be updated to process new data. </p>
  
  <p>Dilemma is: we have many clients. They all have their own database. We do not want to update all their databases.</p>
  
  <p>We do not have multiple versions of service Y. So they will all get the new version of service Y.</p>
  
  <p>So service Y will have to work with both OLD and NEW version of database.</p>
  
  <p>Service X will only be updated , when the database is updated... so there is no problem.</p>
  
  <p>Service Y uses Entity Framework, (code is not generated). </p>
  
  <p>How can I make sure service Y will work in both cases ?:</p>
  
  <ul>
  <li>OLD: columns do NOT exist in database.</li>
  <li>NEW: columns exist in database.</li>
  </ul>
  
  <p>Anybody have any Ideas ????</p>