示例#1
0
 public void SaveChanges(EntitySession session)
 {
     Database.SaveChanges(session);
 }
示例#2
0
 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;
       }
 }