Example #1
0
        public bool Any(Expression <Func <TModel, object> > specifierExpression)
        {
            var filterExpressions = new List <DbQueryWhereClause <TModel> >()
            {
                new DbQueryWhereClause <TModel>()
                {
                    Clause   = specifierExpression,
                    Operator = DbQueryConditionOperators.And
                }
            };

            var strategy = _queryStrategyProvider.GetSelectAggregationStrategy(
                _queryTable.ModelStrategy,
                DbQueryAggregateMode.Any,
                filterExpressions);
            var sql      = strategy.GetDbQueryScript();
            var dbparams = strategy.GetDbParameters().ToList();

            _serviceProvider.Open();

            IDataReader reader = null;
            bool        isAny;

            try
            {
                reader = _serviceProvider.QueryGetReader(sql, dbparams);
                isAny  = reader.Read();
            }
            catch (Exception exception)
            {
                throw new DbOperationException("ERROR_SQL_EXECUTION_FAILED", exception, sql, dbparams);
            }
            finally
            {
                reader?.Close();

                _serviceProvider.Close();
            }

            return(isAny);
        }