示例#1
0
 public void Dispose()
 {
     if (ifDispose)
     {
         context?.Dispose();
     }
 }
 public virtual void Dispose()
 {
     if (_dbContext != null)
     {
         _dbContext.Dispose();
     }
 }
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         db.Dispose();
     }
     base.Dispose(disposing);
 }
示例#4
0
 protected virtual void Dispose(bool disposing)
 {
     if (!this.disposed)
     {
         if (disposing)
         {
             _context.Dispose();
         }
     }
     this.disposed = true;
 }
        public void Dispose()
        {
            if (DbContext != null)
            {
                DbContext.Dispose();
            }

            if (CacheContext != null)
            {
                CacheContext.Dispose();
            }
        }
示例#6
0
        public void InitializerDatabase()
        {
            var context = new DefaultDbContext();
            IDatabaseInitializer <DefaultDbContext> initializer;

            if (!context.Database.Exists())
            {
                initializer = new CreateDatabaseIfNotExists <DefaultDbContext>();
            }
            else
            {
                initializer = new MigrateDatabaseToLatestVersion <DefaultDbContext, AutoMigrationsConfiguration <DefaultDbContext> >();
            }
            Database.SetInitializer(initializer);
            ObjectContext objectContext = ((IObjectContextAdapter)context).ObjectContext;
            StorageMappingItemCollection mappingItemCollection = (StorageMappingItemCollection)objectContext.ObjectStateManager
                                                                 .MetadataWorkspace.GetItemCollection(DataSpace.CSSpace);

            mappingItemCollection.GenerateViews(new List <EdmSchemaError>());
            context.Dispose();
        }
示例#7
0
        /// <summary>
        /// 执行与释放或重置非托管资源相关的应用程序定义的任务。
        /// </summary>
        public void Dispose()
        {
            try
            {
                if (!_cancelled)
                {
                    Logger.Debug("标记事务为完成");
                    if (_dbContext != null)
                    {
                        _dbContext.SaveChanges();
                    }
                    if (_transaction != null)
                    {
                        _transaction.Commit();
                    }
                }
                else
                {
                    if (_transaction == null)
                    {
                        return;
                    }
                    Logger.Debug("回滚事务");
                    _transaction.Rollback();
                }
            }
            catch (DbEntityValidationException dbEntityValidationException)
            {
                var builder = new StringBuilder();
                builder.AppendLine("处置事务时发生了错误");
                foreach (var dbEntityValidationResult in dbEntityValidationException.EntityValidationErrors)
                {
                    foreach (var dbValidationError in dbEntityValidationResult.ValidationErrors)
                    {
                        var property      = dbValidationError.PropertyName;
                        var currentValues = dbEntityValidationResult.Entry.CurrentValues;
                        var propertyValue = currentValues.PropertyNames.Contains(property) ? currentValues[property] : null;
                        builder.AppendLine(string.Format("属性:{0},值:{1},错误信息:{2}。", property, propertyValue == null ? "null" : propertyValue.ToString(), dbValidationError.ErrorMessage));
                    }
                }
                Logger.Error(dbEntityValidationException, builder.ToString());
#if DEBUG
                throw;
#endif
            }
            catch (Exception e)
            {
                Logger.Error(e, "处置事务时发生了错误");
#if DEBUG
                throw;
#endif
            }
            finally
            {
                if (_transaction != null)
                {
                    _transaction.Dispose();
                    Logger.Debug("事务被释放");
                    _transaction = null;
                }
                _cancelled = false;
                if (_dbContext != null)
                {
                    _dbContext.Dispose();
                    _dbContext = null;
                }
            }
        }
示例#8
0
 /// <summary>
 /// 关闭连接
 /// </summary>
 public virtual void Close()
 {
     DbContext.Database.CloseConnection();
     DbContext.Dispose();
 }