我正在使用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?
答案 0 :(得分:1)
事实证明,解决问题的最简单方法是在代码中为对象分配ID,而不是等待数据库执行。