EF代码首先添加模型相关的存在子代

时间:2015-10-22 14:18:27

标签: entity-framework ef-code-first

我尝试向DB添加新模型,但模型已经存在子模型 我收到了这个错误:

"发生了参照完整性约束违规:' Category.ID'的属性值。在一段关系的一端与' Lesson.CategoryID'的属性值不匹配。在另一端。"

例如:

public class Category
{
    public int ID { get; set; }
    public string Name{ get; set; }
    public List<Lesson> Lessons{ get; set; }
}

public class Lesson
{
    public int ID { get; set; }
    public string Name{ get; set; }
    public List<Category> Categories { get; set; }
}

我认为类别ID仍然为0,直到数据库将生成新的ID和Lesson.CategoryID填写为0,类别中不存在

保存代码:

DB.Categories.Add(obj);
DB.ChangeTracker.Entries()
       .Where(x => x.Entity is BaseModel && x.State == EntityState.Added && ((BaseModel)x.Entity).ID > 0)
                    .ToList().ForEach(x => x.State = EntityState.Unchanged);

知道如何解决这个问题吗? 不管怎样,谢谢

0 个答案:

没有答案