public void SaveChanges(EntitySession session) { Database.SaveChanges(session); }
public bool UpdateDbInfo(Database db, Exception exception = null) { //Check that db has module's tables; if not, this module is not included in the solution var tbl = db.DbModel.GetTable(typeof(IDbInfo)); if (tbl == null) return false; try { var app = db.DbModel.EntityApp; var session = App.OpenSystemSession(); // Disable stored procs and disable batch mode session.DisableStoredProcs(); session.DisableBatchMode(); var ent = session.GetEntities<IDbInfo>(take: 1).FirstOrDefault(e => e.AppName == app.AppName); if(ent == null) { ent = session.NewEntity<IDbInfo>(); ent.Version = app.Version.ToString(); ent.AppName = app.AppName; } if(exception == null) { ent.Version = app.Version.ToString(); ent.LastModelUpdateFailed = false; ent.LastModelUpdateError = null; ent.Values = SerializeValues(db.DbModel.VersionInfo); SaveModulesInfo(session, db.DbModel.VersionInfo); } else { ent.LastModelUpdateFailed = true; ent.LastModelUpdateError = exception.ToLogString(); } // we use db.SaveChanges directly, to make sure we go thru proper database var entSession = (Vita.Entities.Runtime.EntitySession)session; db.SaveChanges(entSession); return true; } catch (Exception ex) { App.ActivationLog.Error(ex.ToLogString()); return false; } }