Since I did not recieve any answers, I ended up doing a POC to prove my point, below is the piece of code which goes through the appsettings and updates settings from DB:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
IDictionary<string, string> staticAppSettings = ConfigService.GetStaticAppSettings(); // DB Call to get all settings from DB
foreach (var setting in staticAppSettings)
{
if (ConfigurationManager.AppSettings[setting.Key] == null)
config.AppSettings.Settings.Add(setting.Key, setting.Value);
else
ConfigurationManager.AppSettings[setting.Key] = setting.Value; // Update existing
}
config.Save();
ConfigurationManager.RefreshSection("appSettings");