title: entity framework relationship issue
body: <p>I have the foloowing models:</p>
  
  <pre><code>public class Employee
      {
          public int ID { get; set; }
          public string name { get; set; }
          public int LocationID { set; get; }
  
          public virtual Location Location { set; get; }
  
      }
      public class Location {
  
          public int ID { set; get; }
          public string NAME { set; get; }
          public virtual ICollection&lt;Employee&gt; LocationEmployees { get; set; }
  
      }
  </code></pre>
  
  <p>Basically an employee belongs to a location and a location has a lot of employees. I want to add a column to the location model called location contact which will be an employee id. I have tried adding it through code first migrations but it is not yielding the expected results.</p>
  
  <p>Added columns</p>
  
  <pre><code>public class Employee
      {
          public int ID { get; set; }
          public string name { get; set; }
          public int LocationID { set; get; }
  
          public virtual Location Location { set; get; }
  
      }
      public class Location {
  
          public int ID { set; get; }
          public string NAME { set; get; }
  
          public int EmployeeID { get; set; }
  
          public virtual Employee Employee { get; set; }
          public virtual ICollection&lt;Employee&gt; LocationEmployees { get; set; }
  
      }
  </code></pre>
  
  <p>Migration file generated:</p>
  
  <pre><code>public override void Up()
          {
              DropForeignKey("dbo.Employees", "LocationID", "dbo.Locations");
              DropIndex("dbo.Employees", new[] { "LocationID" });
              RenameColumn(table: "dbo.Employees", name: "LocationID", newName: "Location_ID");
              AddColumn("dbo.Locations", "EmployeeID", c =&gt; c.Int(nullable: true));
              AddForeignKey("dbo.Employees", "Location_ID", "dbo.Locations", "ID");
              AddForeignKey("dbo.Employees", "LocationID", "dbo.Locations", "ID", cascadeDelete: false);
              AddForeignKey("dbo.Locations", "EmployeeID", "dbo.Employees", "ID", cascadeDelete: false);
              CreateIndex("dbo.Employees", "Location_ID");
              CreateIndex("dbo.Employees", "LocationID");
              CreateIndex("dbo.Locations", "EmployeeID");
          }
  
          public override void Down()
          {
              DropIndex("dbo.Locations", new[] { "EmployeeID" });
              DropIndex("dbo.Employees", new[] { "LocationID" });
              DropIndex("dbo.Employees", new[] { "Location_ID" });
              DropForeignKey("dbo.Locations", "EmployeeID", "dbo.Employees");
              DropForeignKey("dbo.Employees", "LocationID", "dbo.Locations");
              DropForeignKey("dbo.Employees", "Location_ID", "dbo.Locations");
              DropColumn("dbo.Locations", "EmployeeID");
              RenameColumn(table: "dbo.Employees", name: "Location_ID", newName: "LocationID");
              CreateIndex("dbo.Employees", "LocationID");
              AddForeignKey("dbo.Employees", "LocationID", "dbo.Locations", "ID", cascadeDelete: false);
          }
  </code></pre>
  
  <p>I am getting this error:</p>
  
  <pre><code>System.Data.SqlClient.SqlException (0x80131904): Foreign key 'FK_dbo.Employees_dbo.Locations_LocationID' references invalid column 'LocationID' in referencing table 'Employees'.
  Could not create constraint. See previous errors.
     at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
     at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
     at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
     at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
     at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
     at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
     at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
     at System.Data.Entity.Migrations.DbMigrator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement)
     at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement)
     at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable`1 migrationStatements)
     at System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements(IEnumerable`1 migrationStatements)
     at System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, XDocument targetModel, IEnumerable`1 operations, Boolean downgrading, Boolean auto)
     at System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
     at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration, DbMigration lastMigration)
     at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
     at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
     at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
     at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
     at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
     at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
  Foreign key 'FK_dbo.Employees_dbo.Locations_LocationID' references invalid column 'LocationID' in referencing table 'Employees'.
  Could not create constraint. See previous errors.
  </code></pre>
  
  <p>What am I missing?</p>