public DBContext(NHConfigFactory.DBConfig cfg) { mCreateDate = DateTime.Now; mID = Guid.NewGuid(); //Common.General.DALoger.Error("創建DBContext,ID=" + mID.ToString()); switch (cfg) { case NHConfigFactory.DBConfig.PPC: mSession = mHBPMS_SQLiteFactory.CreateSession(); break; case NHConfigFactory.DBConfig.PLCDATA: mSession = mPLCDATA_SQLiteFactory.CreateSession(); break; case NHConfigFactory.DBConfig.HBIMSN: mSession = mHBPMS_SQLServerFactory.CreateSession(); break; case NHConfigFactory.DBConfig.PLMDB: mSession = mPLMDB_SQLServerFactory.CreateSession(); break; case NHConfigFactory.DBConfig.ICPDB: mSession = mICPDB_SQLServerFactory.CreateSession(); break; default: break; } mSession.FlushMode = FlushMode.Commit; mCanCommit = true; mAutoCommit = false; }
/// <summary> /// 創建DBContext,并開啟事務,自動提交數據 /// </summary> /// <param name="cfg"></param> /// <returns></returns> public static DBContext Begin(NHConfigFactory.DBConfig cfg) { DBContext dbContext = new DBContext(cfg); dbContext.AutoCommit = true; try { bool success = false; while (!success) { dbContext._transaction = dbContext.BeginTransaction(); Thread.Sleep(10); success = true; } } catch (Exception ex) { Common.General.DALoger.Error("創建DBContext開啟事務時出錯", ex); throw; } return dbContext; }