2015-07-31 2 views
0

У меня возникла странная проблема.Проблема с методом _context.SaveChanges()

Если удалить _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(); 
    } 
} 

ответ

3

addUpdateStudentDetails установил контекст. Вызов в SaveChanges выполняется в поле, а не в той же переменной контекста.

+0

Спасибо, я не получил много «Call to SaveChanges исполняется в поле» ... – immirza

+0

метод обновления работает с переменной _context (с подчеркиванием), которая явно объявлена ​​вне этого метода, возможно, поле. –

Смежные вопросы