If an auto-increment column is set explicitly by the user LAST_INSERT_ID will not return the expected value. This amender makes sure the user defined value for the auto-increment column is returned by the next call to LAST_INSERT_ID.
Inheritance: SqlExpressionVisitor
コード例 #1
0
        protected override Expression PreProcess(Expression expression)
        {
            expression = base.PreProcess(expression);
            expression = MySqlAutoIncrementAmender.Amend(expression);
            expression = MySqlInsertIntoAutoIncrementAmender.Amend(SqlReferencesColumnDeferrabilityRemover.Remove(expression), this.sqlDataTypeProvider);

            return(expression);
        }
コード例 #2
0
        protected override Expression PreProcess(Expression expression)
        {
            expression = base.PreProcess(expression);
            expression = MySqlAutoIncrementAmender.Amend(expression);
            expression = MySqlInsertIntoAutoIncrementAmender.Amend(SqlReferencesColumnDeferrabilityRemover.Remove(expression));
            expression = MySqlNestedTableReferenceInUpdateFixer.Fix(expression);

            return(expression);
        }
コード例 #3
0
        protected override Expression PreProcess(Expression expression)
        {
            expression = base.PreProcess(expression);
            expression = MySqlAutoIncrementAmender.Amend(expression);
            expression = MySqlInsertIntoAutoIncrementAmender.Amend(SqlReferencesColumnDeferrabilityRemover.Remove(expression));
            expression = MySqlNestedTableReferenceInUpdateFixer.Fix(expression);
            expression = MySqlDefaultValueConstraintFixer.Fix(expression);

            if (this.silentlyIgnoreIndexConditions)
            {
                expression = MySqlIndexConditionRemover.Remove(expression);
            }

            return(expression);
        }
コード例 #4
0
        public static Expression Amend(Expression expression, SqlDataTypeProvider sqlDataTypeProvider)
        {
            var processor = new MySqlInsertIntoAutoIncrementAmender(sqlDataTypeProvider);

            return(processor.Visit(expression));
        }
コード例 #5
0
		public static Expression Amend(Expression expression, SqlDataTypeProvider sqlDataTypeProvider)
		{
			var processor = new MySqlInsertIntoAutoIncrementAmender(sqlDataTypeProvider);

			return processor.Visit(expression);
		}