Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }