title: Entity Framework Migration: Why does it ignore snapshot and take __MigrationHistory into account?
body: <p>I'm using EF 6.0.0 and .Net 4.5.</p>
  
  <p>I face a very confusing problem. Me and one of my colleagues are working on the domain model section of our project on two different clients. The problem is:</p>
  
  <p><strong>1-</strong> Me and my colleagues start with the absolutely identical project and we are completely synced with the source control.</p>
  
  <p><strong>2-</strong> When I change the model for example add a property then <code>Add-Migration FromA</code> then <code>Update-Database</code> it works great. The generated code file contains just one command that is to add the column.</p>
  
  <p><strong>3-</strong> Meanwhile, after the <code>db</code> is updated and just before I check in something to source control, my colleague adds another property and then <code>Add-Migration FromA</code> then <code>Update-Database</code>. And guess what? This generated code file <strong>has a command to drop the column I newly added!!!</strong></p>
  
  <p>I added another column using native Sql, and fortunately the column is not going to be deleted.</p>
  
  <p>I deleted the <code>__MigrationHistory</code> table and the remove column didn't get generated.</p>
  
  <p>I turned off initializer <code>Database.SetInitializer&lt;MyContext&gt;(null)</code>, no success.</p>
  
  <p>So, my guess is that <code>EF Migrations</code> compares current model with the last one stored in <code>__MigrationHistory</code> table not the last local snapshot stored in <code>.resx</code> file. Am I right? Any way to solve the problem?</p>