Пример #1
0
        /// <summary>
        /// Generate insert script and executive
        /// </summary>
        private void Insert()
        {
            //
            // Initialize script
            string sqlInsert = "";


            //
            // For each record, try to generate sql script
            SQLScriptGenerator scriptGenerator = new SQLScriptGenerator(this._tableName, this._typeAccessor, this._listColumnInformation);

            foreach (object record in this._listTasks)
            {
                try
                {
                    string script = scriptGenerator.GenerateInsertScript(record);
                    sqlInsert = sqlInsert + script + Environment.NewLine;
                }
                catch (Exception exc)
                {
                    LogService.Log.Error("Can not generate insert script for record, table name " + this._tableName, exc);
                }
            }



            //
            // Check we need to excecute this script or generate to file
            if (this._isGeneratedScript)
            {
                this._sqlGeneratedScript = sqlInsert;
            }
            else
            {
                try
                {
                    string sqlTurnOn         = "SET IDENTITY_INSERT " + this._tableName + " ON" + Environment.NewLine;
                    string sqlTurnOff        = "SET IDENTITY_INSERT " + this._tableName + " OFF" + Environment.NewLine;
                    string sqlTurnOffTrigger = "ALTER TABLE " + this._tableName + " DISABLE TRIGGER ALL" + Environment.NewLine;
                    string sqlTurnOnTrigger  = "ALTER TABLE " + this._tableName + " ENABLE TRIGGER ALL" + Environment.NewLine;
                    if (this._sqlMultiThreadManager.HasIdentityColumn(this._tableName))
                    {
                        sqlInsert = sqlTurnOn + sqlInsert + sqlTurnOff;
                    }


                    //
                    // Execute
                    DbContext dbContext = this._sqlMultiThreadManager.GetNewDbContext();
                    dbContext.Database.ExecuteSqlCommand(sqlInsert);
                }
                catch (Exception excExecSQL)
                {
                    LogService.Log.Error("Can not execute SQL script.", excExecSQL);
                }
            }
        }
        /// <summary>
        /// Generate insert script and executive
        /// </summary>
        private void Insert()
        {
            //
            // Initialize script
            string sqlInsert = "";

            //
            // For each record, try to generate sql script
            SQLScriptGenerator scriptGenerator = new SQLScriptGenerator(this._tableName, this._typeAccessor, this._listColumnInformation);
            foreach (object record in this._listTasks)
            {
                try
                {
                    string script = scriptGenerator.GenerateInsertScript(record);
                    sqlInsert = sqlInsert + script + Environment.NewLine;
                }
                catch (Exception exc)
                {
                    LogService.Log.Error("Can not generate insert script for record, table name " + this._tableName, exc);
                }
            }

            //
            // Check we need to excecute this script or generate to file
            if (this._isGeneratedScript)
            {
                this._sqlGeneratedScript = sqlInsert;
            }
            else
            {
                try
                {
                    string sqlTurnOn = "SET IDENTITY_INSERT " + this._tableName + " ON" + Environment.NewLine;
                    string sqlTurnOff = "SET IDENTITY_INSERT " + this._tableName + " OFF" + Environment.NewLine;
                    string sqlTurnOffTrigger = "ALTER TABLE " + this._tableName + " DISABLE TRIGGER ALL" + Environment.NewLine;
                    string sqlTurnOnTrigger = "ALTER TABLE " + this._tableName + " ENABLE TRIGGER ALL" + Environment.NewLine;
                    if (this._sqlMultiThreadManager.HasIdentityColumn(this._tableName))
                    {
                        sqlInsert = sqlTurnOn + sqlInsert + sqlTurnOff;
                    }

                    //
                    // Execute
                    DbContext dbContext = this._sqlMultiThreadManager.GetNewDbContext();
                    dbContext.Database.ExecuteSqlCommand(sqlInsert);
                }
                catch (Exception excExecSQL)
                {
                    LogService.Log.Error("Can not execute SQL script.", excExecSQL);
                }
            }
        }