title: Entity Framework Migrations can't drop table because of foreign key constraint
body: <p>I have reverse-engineered the existing database to the code-first model. Some tables are to be kept but most are to be removed and completely re-architected for the new version.</p>
  
  <p>I delete some old classes and their mapping and add-migration.</p>
  
  <p>The migration looks like this:</p>
  
  <pre><code>  public override void Up()
          {
              DropForeignKey("dbo.Bingo_Review", "BingoID", "dbo.Bingo");
              DropForeignKey("dbo.Bingo_Review_Text", "BingoReviewID", "dbo.Bingo_Review");
              DropForeignKey("dbo.Bingo_Bonus", "BingoID", "dbo.Bingo");
              DropForeignKey("dbo.Bingo_Bonus_Amount", "BingoBonusID", "dbo.Bingo_Bonus");
              DropIndex("dbo.Bingo_Bonus", new[] { "BingoID" });
              DropIndex("dbo.Bingo_Review", new[] { "BingoID" });
              DropIndex("dbo.Bingo_Review_Text", new[] { "BingoReviewID" });
              DropIndex("dbo.Bingo_Bonus_Amount", new[] { "BingoBonusID" });
              DropTable("dbo.Bingo_Bonus");
              DropTable("dbo.Bingo");
              DropTable("dbo.Bingo_Review");
              DropTable("dbo.Bingo_Review_Text");
              DropTable("dbo.Bingo_Bonus_Amount");
              DropTable("dbo.Bingo_Bonus_Type");
          }
  </code></pre>
  
  <p>However when I run the migration, I get the following error in package manager console.</p>
  
  <pre><code>Could not drop object 'dbo.Bingo_Bonus' because it is referenced by a FOREIGN KEY constraint.
  </code></pre>
  
  <p>Why do I get this error when the migration should have already dropped any foreign keys prior to the drop table command? Is there any way around this?</p>