/// <summary> /// Deletes the specified filter expression. /// </summary> /// <param name="filterExpression">The filter expression.</param> /// <returns></returns> public int Delete(Expression <Func <T, bool> > filterExpression) { if (Connection == null) { throw new InvalidOperationException("must set connection before calling Delete()"); } var parser = new WhereExpressionParser <T>(_dataMap, SqlDialect) { UseQuotedIdentifier = CommandBuilder.UseQuotedIdentifier }; var result = parser.Parse(filterExpression); try { DbCommand command = CommandBuilder.GetDeleteCommand(result.SqlText); if (result.Parameters != null) { DataManager.AddParamsToCommand(command, SqlDialect, result.Parameters); } return(ExecuteNonQueryInternal(command)); } catch (Exception ex) { throw new DataException(ex.Message, ex); } }
public int UpdateRows(IDictionary <string, object> setClause, Expression <Func <T, bool> > whereExpression) { if (Connection == null) { throw new InvalidOperationException("must set connection before calling UpdateRows()"); } if (setClause == null) { throw new ArgumentNullException("setClause"); } if (setClause.Count == 0) { throw new ArgumentException("Empty Set Clause"); } var parser = new WhereExpressionParser <T>(DataMap, SqlDialect) { UseQuotedIdentifier = CommandBuilder.UseQuotedIdentifier }; var parsedWhere = parser.Parse(whereExpression); DbCommand command = CommandBuilder.GetUpdateRowsCommand(setClause, parsedWhere.SqlText); DataManager.AddParamsToCommand(command, SqlDialect, parsedWhere.Parameters, ParameterPrefix); return(ExecuteNonQueryInternal(command)); }
public DataClassReader <T> OpenReader(Expression <Func <T, bool> > filterExpression) { var parser = new WhereExpressionParser <T>(DataMap, SqlDialect) { UseQuotedIdentifier = CommandBuilder.UseQuotedIdentifier }; var result = parser.Parse(filterExpression); return(OpenReaderInternal(result.SqlText, FillMethod.FilterText, result.Parameters)); }
public T GetSingleItem(Expression <Func <T, bool> > filterExpression) { if (Connection == null) { throw new InvalidOperationException("must set connection before calling GetSingleItem()"); } var parser = new WhereExpressionParser <T>(DataMap, SqlDialect) { UseQuotedIdentifier = CommandBuilder.UseQuotedIdentifier }; var result = parser.Parse(filterExpression); DbCommand command = PrepCommandForSelect(result.SqlText, FillMethod.FilterText, result.Parameters); SqlDialect.OptimizeSelectSingleCommand(command); return(GetSingleItem(command)); }