/// <summary> /// This method will insert every missing column for each table into the database. Will only be called if HasallColumns() returns false. This means the user has an outdated .db file /// </summary> public static void InsertNewColumns() { using (Youtube2Mp3DatabaseEntities db = new Youtube2Mp3DatabaseEntities()) { //every column that SHOULD exist var downloadHistoryNames = typeof(DownloadHistory).GetProperties().Select(property => property.Name).ToArray(); var settingNames = typeof(Settings).GetProperties().Select(property => property.Name).ToArray(); foreach (string column in downloadHistoryNames) { if (!HasColumn(column, "DownloadHistory")) { db.Database.ExecuteSqlCommand("ALTER TABLE DownloadHistory ADD COLUMN " + column + " " + GetDownloadHistoryColumnSqlType(column)); } } foreach (string column in settingNames) { if (!HasColumn(column, "settings")) { db.Database.ExecuteSqlCommand("ALTER TABLE SETTINGS ADD COLUMN " + column + " " + GetSettingColumnSqlType(column)); } } db.SaveChanges(); db.Dispose(); } }
public static void UpdateSettings(Settings set) { using (Youtube2Mp3DatabaseEntities db = new Youtube2Mp3DatabaseEntities()) { var count = db.Settings.Where(o => o.Id >= 0).Count(); if (count > 0) { db.Settings.Attach(set); var entry = db.Entry(set); entry.State = System.Data.Entity.EntityState.Modified; //Mark it for update db.SaveChanges(); //push to database db.Dispose(); } else {//The settings table is still empty db.Settings.Add(set); db.SaveChanges(); db.Dispose(); } } }
/// <summary> /// Saves pending changes to the database, disposes it, and refreshes the local cache list /// </summary> /// <param name="db"></param> private static void SaveAndCloseDataBase(Youtube2Mp3DatabaseEntities db) { db.SaveChanges(); RefreshCacheList(); db.Dispose(); }