public void Can_Write_Select_With_Projection_Only()
        {
            var queryExpression = QueryExpression.Select(
                new[] { QueryExpression.Count() }
                );
            var sql = TestHelpers.ConvertToSql(queryExpression);

            Assert.AreEqual("SELECT COUNT();", sql);
        }
        public void Can_Write_Select_With_Distinct_Count()
        {
            var queryExpression = QueryExpression.Select(
                new[] { QueryExpression.Count(
                            QueryExpression.Distinct(QueryExpression.Column("Id"))
                            ) }
                );
            var sql = TestHelpers.ConvertToSql(queryExpression);

            Assert.AreEqual("SELECT COUNT(DISTINCT [Id]);", sql);
        }
        public void Can_Write_Multiple_Statements()
        {
            var queryExpression =
                QueryExpression.Many(
                    QueryExpression.Select(
                        new[] { QueryExpression.Count() }
                        ),
                    QueryExpression.Select(
                        new[] { QueryExpression.Count() }
                        ));
            var sql = TestHelpers.ConvertToSql(queryExpression);

            Assert.AreEqual("SELECT COUNT(); SELECT COUNT();", sql);
        }
示例#4
0
        private LinqQueryExpression <TEntity> CountCall <TEntity>(MethodCallExpression methodCallExpression,
                                                                  ExpressionConversionVisitor <TEntity> expressionConverter)
            where TEntity : class
        {
            if (methodCallExpression.Arguments.Count < 2)
            {
                return(new LinqQueryExpression <TEntity>(
                           QueryExpression.Count()
                           ));
            }

            var expression = expressionConverter.Visit(methodCallExpression.Arguments[1]) as LinqQueryExpression <TEntity>;

            return(new LinqQueryExpression <TEntity>(
                       QueryExpression.Count(expression.QueryExpression),
                       expression.JoinBuilders
                       ));
        }