не могу похвастать опытом с EF.. однако подозреваю, что контекст бд надо создавать один раз, при запуске программы, и раздавать его в нужные места. даже если не совсем понятно - это чисто технический вопрос, легко решаемый разными способами. для начала усвойте саму идею. хуже не будет точно
там могут быть существенные пояснения
2 - по коду, с некоторой вероятность, я бы допустил, что возможна попытка создания более одного контекста. using вроде бы и должен обеспечить закрытие, по окончанию обработки, но гарантии нет. и в любом случае - открывать/закрывать базу на каждый клик кнопки - не лучшая идея. обще принято открывать базу при старте программы, закрывать по завершению, а сохранять изменения - это да, не возбраняется в любом месте. разве что предпочтительно соблюсти баланс интенсивности дисковых операций (их бы поменьше) с важностью изменений (чем важнее, тем больше резона сохранить)
#, Вы не правы. DbContext по большому счету -- обертка над соединением, то есть, создавать его надо только в тот момент, когда он необходим, а жить он должен как можно меньше времени. Открывать соединение к БД в начале работы приложения -- гут, но, только в том случае, если приложение десктопное или мобильное, при этом БД пользуется только оно (нет конкуррентных подключений), в случае серверного приложения держать соединение открытым так долго идея не из лучших.
Серафим Прозоров,
1 - OnButtonSaveClick(), вам ни о чем не говорит? если нет, разговор уже окончен ))
2 - о серверах, теже WebApi.. что важнее? время отклика?, не так ли?.. если на каждое обращение к api заново созвать/сохранять-изменения/закрывать соединение, хорошая ли это идея? особенно если запросы действительно интенсинвые.. ну и учебка https://docs.microsoft.com/ru-ru/aspnet/core/tutor...