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