Esempio n. 1
0
        public override int Execute()
        {
            //if it's a trackable entity and no changes where made, let's not waste our time running a query
            var trackable = entity as ITrackable;

            if (trackable != null && !trackable.IsDirty)
            {
                return(0);
            }

            var execList = Build();
            int total    = 0;
            var runner   = new SqlCommandRunner();
            var dialect  = session.SessionFactory.DbSettings.SqlDialect;

            //if(trackable != null)
            //{
            //    logger.Log(LogLevel.Debug, string.Format("changes found {0} ", trackable.ChangeTracker.GetChangedItems().Count));
            //}

            foreach (var update in execList.Statements.Values)
            {
                var parameters = new List <QueryParam>();
                parameters.AddRange(whereParameters);
                parameters.AddRange(update.Columns.Values.Select(p => p.Item1));
                total += runner.ExecuteNonQuery(session, update.ToString(dialect), parameters.ToArray());
            }

            foreach (var manyToManyOp in execList.ManyToManyStatements)
            {
                total += runner.ExecuteNonQuery(session, manyToManyOp.Item1, manyToManyOp.Item2.ToArray());
            }

            return(total);
        }
Esempio n. 2
0
        private void DeleteAllTableData(string dbName)
        {
            StringBuilder sb = new StringBuilder();

            foreach (string tableName in SqlCommandRunner.GetAllTables(dbName))
            {
                sb.AppendLine(string.Format("delete from {0} ", tableName));
            }
            SqlCommandRunner.DelAllFks(_Db1);
            SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sb.ToString()), dbName);
        }
Esempio n. 3
0
        public int Execute()
        {
            var updateBody      = Build();
            var runner          = new SqlCommandRunner();
            var localParameters = new List <QueryParam>();

            localParameters.AddRange(Parameters);
            localParameters.AddRange(updateBody.Columns.Values.Select(p => p.Item1));


            return(runner.ExecuteNonQuery(session, updateBody.ToString(dialect), localParameters.ToArray()));
        }
Esempio n. 4
0
        private void MockChangment()
        {
            string sqlCommand = @"
            --修改tleaverequest的2行数据
            update tleaverequest set absentHours = 999
            --删除tleaverequestItem的1行数据
            delete tleaverequestitem where pkid = 2
            --增加/修改tleaverequestflow的4行数据
            update tleaverequestflow set operatorId = 99
            insert into tleaverequestflow(leaveRequestItemId,operatorId,operation,operationTime,remark)
            values(1,88,55,'2009-6-19','hello')";

            SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sqlCommand), _TempDbName);
        }
Esempio n. 5
0
        private void MockAddLeaveRequest()
        {
            string sqlCommand = @"
            declare @id int
            insert into tleaverequest(accountid,leaverequesttypeid,reason,submitdate,absentfrom,absentto,absenthours,diyprocess)
            values(3,2,'','2009-6-9','2009-6-15','2009-6-15',8,'')
            select @id = SCOPE_IDENTITY()
            insert into tleaverequestitem(leaverequestid,status,absentfrom,absentto,absenthours,nextprocessid)
            values(@id,3,'2009-6-15','2009-6-15',8,3)
            select @id = SCOPE_IDENTITY()
            insert into tleaverequestflow(leaveRequestItemId,operatorId,operation,operationTime,remark)
            values(@id,88,55,'2009-6-9','hello')";

            SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sqlCommand), _TempDbName);
        }
Esempio n. 6
0
        /// <summary>
        /// Executes this instance.
        /// </summary>
        /// <returns></returns>
        public override int Execute()
        {
            var execList = Build();
            int total    = 0;
            var runner   = new SqlCommandRunner();
            var dialect  = session.SessionFactory.DbSettings.SqlDialect;

            foreach (var del in execList.Statements.Values)
            {
                var parameters = new List <QueryParam>();
                parameters.AddRange(whereParameters);
                total += runner.ExecuteNonQuery(session, del.ToString(dialect), parameters.ToArray());
            }

            return(total);
        }
Esempio n. 7
0
        int Execute(ISession session, InsertSqlInfo statement)
        {
            var sql        = statement.ToString(session.SessionFactory.DbSettings.SqlDialect);
            var cmdr       = new SqlCommandRunner();
            var parameters = new List <QueryParam>();

            parameters.AddRange(GeneratedKeys.Values);

            foreach (var queryParam in statement.Parameters)
            {
                if (!GeneratedKeys.ContainsKey(queryParam.Key))
                {
                    parameters.Add(queryParam.Value);
                }
            }

            return(cmdr.ExecuteNonQuery(session, sql, parameters.ToArray()));
        }
        private void MockChangment()
        {
            //主表新增一行记录,修改一行记录,删除一行记录
            //附表1删除一行记录,附表2删除2行记录
            string sqlCommand = @"insert into tapplication(applicantid,applicantName,applicationDate,applicationFrom,ApplicationTo,CostTime,Status,Reason,Type,OvertimeType)
                                values(1,'','2008-10-2','2008-10-2','2008-10-2',4,1,'',1,1)
                                update tapplication
                                set applicantName = 'modifyByTester'
                                where pkid =278
                                delete tapplication 
                                where pkid = 279
                                delete tapplicationEmployee
                                where applicationId = 279
                                delete tapplicationFlow
                                where applicationId = 279";

            SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sqlCommand), _TempDbName);
        }