_context.SaveChanges()方法问题

时间:2015-07-31 10:43:44

标签: c# entity-framework ef-code-first entity-framework-6

我面临着一个奇怪的问题。

如果我从_context.SaveChanges()方法中移除addUpdateStudentDetails()而没有保存任何内容,而我希望保存,因为我的调用方法中有_context.SaveChanges()语句,即update()

对吗?或者还有其他原因造成这种情况?

但是,如果我在我的被叫方法中保留_context.SaveChanges(),而不是在数据库中成功保存添加/或修改后的信息。

public void update(StudentReport report)
{
    addUpdateStudentDetails(report);
    _context.Entry(original).CurrentValues.SetValues(report);
    _context.SaveChanges();
}

private void addUpdateStudentDetails(StudentReport report)
{
    using (var context = new DBContext())
    {
        if (student != null)
            context.Entry(orignal).State = EntityState.Modified;
        else 
            context.Student.Add(orignal);
        context.SaveChanges();
    }
}

1 个答案:

答案 0 :(得分:3)

addUpdateStudentDetails已经处理了上下文。调用SaveChanges是在字段上执行的,而不是在同一个上下文变量上执行。