public override DbExpression Visit(DbDeleteExpression exp)
        {
            if (!(exp is MySqlDbDeleteExpression))
            {
                return(base.Visit(exp));
            }

            var ret = new MySqlDbDeleteExpression(exp.Table, this.MakeNewExpression(exp.Condition));

            ret.Limits = (exp as MySqlDbDeleteExpression).Limits;

            return(ret);
        }
Ejemplo n.º 2
0
        public virtual int Delete <TEntity>(Expression <Func <TEntity, bool> > condition, string table, int limits)
        {
            PublicHelper.CheckNull(condition);

            TypeDescriptor typeDescriptor = EntityTypeContainer.GetDescriptor(typeof(TEntity));

            DbTable dbTable = PublicHelper.CreateDbTable(typeDescriptor, table);
            DefaultExpressionParser expressionParser = typeDescriptor.GetExpressionParser(dbTable);
            DbExpression            conditionExp     = expressionParser.ParseFilterPredicate(condition);

            MySqlDbDeleteExpression e = new MySqlDbDeleteExpression(dbTable, conditionExp);

            e.Limits = limits;

            return(this.ExecuteNonQuery(e));
        }
Ejemplo n.º 3
0
        public virtual int Delete <TEntity>(Expression <Func <TEntity, bool> > condition, string table, int limits)
        {
            Utils.CheckNull(condition);

            TypeDescriptor typeDescriptor = EntityTypeContainer.GetDescriptor(typeof(TEntity));

            DbTable explicitDbTable = null;

            if (table != null)
            {
                explicitDbTable = new DbTable(table, typeDescriptor.Table.Schema);
            }
            DefaultExpressionParser expressionParser = typeDescriptor.GetExpressionParser(explicitDbTable);
            DbExpression            conditionExp     = expressionParser.ParseFilterPredicate(condition);

            MySqlDbDeleteExpression e = new MySqlDbDeleteExpression(explicitDbTable ?? typeDescriptor.Table, conditionExp);

            e.Limits = limits;

            return(this.ExecuteSqlCommand(e));
        }