When I run the following migration, I get the following error:
ALTER TABLE statement contradicts FOREIGN KEY constraint
I have an existing database and model refactoring to enable navigation properties.
See the original model and then the new model:
Original Model:
public class Student { public int ID { get; set; } public string Name { get; set; } public string Country { get; set; } }
New model:
public class Student { public int ID { get; set; } public string Name { get; set; } public int CountryID { get; set; } public virtual Country Country { get; set; } } public class Country { public int ID { get; set; } public string Country { get; set; } }
Add-Migration navigation property:
public override void Up() { CreateTable( "dbo.Countries", c => new { ID = c.Int(nullable: false, identity: true), CountryName = c.String(), }) .PrimaryKey(t => t.ID); AddColumn("dbo.Students", "CountryID", c => c.Int(nullable: false)); CreateIndex("dbo.Students", "CountryID"); AddForeignKey("dbo.Students", "CountryID", "dbo.Countries", "ID", cascadeDelete: true); DropColumn("dbo.Students", "Country"); }
Update-Database error:
System.Data.SqlClient.SqlException (0x80131904): The ALTER TABLE statement contradicted the FOREIGN KEY constraint "FK_dbo.Students_dbo.Countries_CountryID". The conflict occurred in the database "aspnet-navprop-20141009041805", the table "dbo.Countries", in the column "ID".
source share