插入约束失败nFOREIGN KEY约束失败尽管播种数据

问题描述:

我试图种子一些示例数据插入约束失败nFOREIGN KEY约束失败尽管播种数据

public class Condition 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public class Entity 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 

    public int ConditionId { get; set; } 
    public virtual Condition Condition { get; set; } 
} 

,并在我的种子的方法..

protected override void Seed(AppContext context) 
{ 
     Condition condition1 = new Condition(); 
     condition1.Name = "Cond1"; 
     Entity.Entity newEntity1 = new Entity.Entity(); 
     newEntity1.Name = "Test1"; 
     newEntity1.Condition = condition1; 
     context.Entities.Add(newEntity1); 

     Condition condition2 = new Condition(); 
     condition2.Name = "Cond2"; 
     Entity.Entity newEntity2 = new Entity.Entity(); 
     newEntity2.Name = "Test Entity 2"; 
     newEntity2.Condition = condition2; 
     context.Entities.Add(newEntity2); 
     context.SaveChanges(); 
} 

我得到这个异常限制外国失败KEY约束失败,我无法弄清楚我在这里做了什么错误。

我试着在第一次插入之后调用context.SaveChanges(),它很好。但仅在第二个context.aveChanges()后才会出现错误。

protected override void Seed(AppContext context) 
{ 
     Condition condition1 = new Condition(); 
     condition1.Id=1; 
     condition1.Name = "Cond1"; 
     Entity.Entity newEntity1 = new Entity.Entity(); 
     newEntity1.Name = "Test1"; 
     newEntity1.ConditionId=1 
     newEntity1.Condition = condition1; 
     context.Entities.Add(newEntity1); 

     Condition condition2 = new Condition(); 
     condition2.Id=2 
     condition2.Name = "Cond2"; 
     Entity.Entity newEntity2 = new Entity.Entity(); 
     newEntity2.Name = "Test Entity 2"; 
     newEntity2.ConditionId=2; 
     newEntity2.Condition = condition2; 
     context.Entities.Add(newEntity2); 
     context.SaveChanges(); 
} 

希望这个作品..