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); }
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)); }
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)); }