public bool Update(List <EntityCommand> listEntityActionCommand) { int commandindex = 0; if (MainConnection.State == ConnectionState.Closed) { MainConnection.Open(); } var transaction = MainConnection.BeginTransaction(); var command = new SqlCommand[listEntityActionCommand.Count]; try { foreach (var entityActionCommand in listEntityActionCommand) { var entity = EntityManager.Instance.GetMyEntity(entityActionCommand.BaseEntity.GetName()); var sqlCommand = entity.GetSqlCommand(entityActionCommand); sqlCommand.Connection = MainConnection; sqlCommand.Transaction = transaction; command[commandindex] = sqlCommand; sqlCommand.ExecuteNonQuery(); entity.UpdateEntityId(entityActionCommand, sqlCommand); commandindex++; } transaction.Commit(); return(true); } catch (Exception ex) { transaction.Rollback(); throw new Exception("UpdateEntitySql::Update::Error occured.", ex); } finally { MainConnection.Close(); for (int i = 0; i < listEntityActionCommand.Count; i++) { command[i].Dispose(); } } }