Вы создаете новый экземпляр Student
самостоятельно каждый раз, когда нажимаете сохранить. Это правильно, если вы хотите создать новую запись Student
, но если вы хотите отредактировать существующую запись, вам придется изменить запись Student
, которую вы извлекли из базы данных.
Лучший ОО-подход заключается в том, чтобы вызывающая форма передавала объект Student
в форму редактора вашего студента. Таким образом, вызывающая форма сама создаст экземпляр нового объекта Student
, если создаст новый, а затем, если DialogResult
формы - OK
, добавьте его в контекст и сохраните. В случае открытия существующей записи, вызывающая форма передаст существующую запись Student
редактору, а затем вызовет Save()
после ее закрытия.
На несвязанной заметке вам действительно нужно Dispose
контекста, как только вы закончите с ней.