播种数据库实体框架6

时间:2014-03-22 18:41:13

标签: entity-framework

我正在使用Entity Framework 6并为测试数据库创建种子数据。除了一个问题外,一切正常。

在将对象添加到列表之前,我的一些类会检查重复的ID。这是一种典型的模式:

   private Assignment FindAssignment(VideoCourse course) {
        Assignment assignment = assignments.Find(x => x.Course.Id == course.Id);
        if (assignment == null) {
            assignment = new Assignment(this, course);
            assignments.Add(assignment);
        }
        return assignment;
    }

在我的种子覆盖中失败(我无法添加多个课程),因为course.Id对于所有课程都是0,直到它们已保存到数据库中。

我尝试在代码中的多个位置调用SaveChanges(),但这实际上与上下文混淆并导致其他对象无法保存。

所以问题是 - 如何将对象保存到数据库中以便设置其ID?

1 个答案:

答案 0 :(得分:1)

事实证明,解决问题的最简单方法是在代码中为对象分配ID,而不是等待数据库执行。