У меня есть подозрение, что GainAccess()
может возвращать новый экземпляр вашего контекста каждый раз, когда он вызывается, что может объяснить поведение.
_dbContext.GainAccess().MedicInfoes.Add(medicInfo); // This instance is never saved
_dbContext.GainAccess().SaveChanges(); // This instance has nothing to save
Вы вызываете Add и Save полностьюразные экземпляры вашего контекста.Таким образом, эти вызовы методов не зависят друг от друга.
Сначала вы добавляете запись, но никогда не сохраняете ее в базу данных.Затем вы создаете другой новый экземпляр, а затем говорите ему о необходимости сохранить изменения, но он не имеет изменений для сохранения, потому что это новый экземпляр, с которым ничего не сделано.
Попробуйте использовать этот же экземпляр для операции.
medicInfo.Active = true;
var context = _dbContext.GainAccess(); //what ever it returns.
context.MedicInfoes.Add(medicInfo);
context.SaveChanges();