public void ShouldFindExpressionsOfParticularTypeUsingPredicate()
        {
            var dbSelectQuery = new DbSelectQuery();
            var expression    = dbSelectQuery.Select(f => f.Column("SomeColumn")).From(f => f.Table("SomeTable"));
            var result        = expression.Find <DbColumnExpression>(c => c.ColumnName == "SomeColumn");

            Assert.IsTrue(result.Count() == 1);
        }
        public void ShouldReplaceExpressionsOfParticularTypeUsingPredicate()
        {
            var factory       = new DbExpressionFactory();
            var dbSelectQuery = new DbSelectQuery();
            var expression    = dbSelectQuery.Select(f => f.Column("SomeColumn")).From(f => f.Table("SomeTable"));

            expression.Replace <DbTableExpression>(te => true, te => factory.Alias(te, "t0"));
            var result = expression.Find <DbAliasExpression>(ae => true);

            Assert.IsTrue(result.Count() == 1);
        }
 public void ShouldReplaceExpressionsOfParticularTypeUsingPredicate()
 {
     var factory = new DbExpressionFactory();
     var dbSelectQuery = new DbSelectQuery();
     var expression = dbSelectQuery.Select(f => f.Column("SomeColumn")).From(f => f.Table("SomeTable"));
     expression.Replace<DbTableExpression>(te => true, te => factory.Alias(te, "t0"));
     var result = expression.Find<DbAliasExpression>(ae => true);
     Assert.IsTrue(result.Count() == 1);
 }
 /// <summary>
 /// Creates a new <see cref="DbSelectQuery"/> that represents a sub query.
 /// </summary>        
 /// <param name="expression">The <see cref="DbExpression"/> that represents the projection.</param>
 /// <returns>A <see cref="DbSelectQuery"/> instance.</returns>
 public DbSelectQuery Select(DbExpression expression)
 {
     var dbSelectQuery = new DbSelectQuery
                             {
                                 QueryExpression =
                                     {
                                         IsSubQuery = true,
                                         ProjectionExpression = expression
                                     }
                             };
     return dbSelectQuery;
 }
 public void ShouldFindExpressionsOfParticularTypeUsingPredicate()
 {
     var dbSelectQuery = new DbSelectQuery();
     var expression = dbSelectQuery.Select(f => f.Column("SomeColumn")).From(f => f.Table("SomeTable"));
     var result = expression.Find<DbColumnExpression>(c => c.ColumnName == "SomeColumn");
     Assert.IsTrue(result.Count() == 1);
 }
 public void ShouldTranslateSelectExpressionWithSkipAndTake()
 {
     var dbSelectQuery = new DbSelectQuery();
     var expression = dbSelectQuery.Select(e => e.Column("SomeColumn"))
         .From(e => e.Table("SomeTable")).Skip(2).Take(3);
     var result = QueryTranslator.Translate(expression);
     Assert.AreEqual(SelectExpressionWithSkipAndTakeSyntax.Clean(), result.Sql.Clean());
 }
 public void ShouldTranslateDistinctWithTopExpression()
 {
     var dbSelectQuery = new DbSelectQuery();
        dbSelectQuery.SelectDistinct(f => f.Column("SomeColumn")).Take(1);
        var result = QueryTranslator.Translate(dbSelectQuery);
        Assert.AreEqual(DistinctWithTopExpressionSyntax.Clean(), result.Sql.Clean());
 }
 public void ShouldTranslateSelectExpressionWithOrderBy()
 {
     var dbSelectQuery = new DbSelectQuery();
     var expression = dbSelectQuery.Select(e => e.Column("SomeColumn"))
         .From(e => e.Table("SomeTable")).OrderBy(e => e.Column("SomeColumn"),DbOrderByExpressionType.Ascending);
     var result = QueryTranslator.Translate(expression);
     Assert.AreEqual(SelectExpressionWithOrderBySyntax.Clean(), result.Sql.Clean());
 }
 public void ShouldTranslateSelectExpressionWithGroupByHaving()
 {
     var dbSelectQuery = new DbSelectQuery();
     var expression = dbSelectQuery.Select(e => e.Column("SomeColumn"))
         .From(e => e.Table("SomeTable")).GroupBy(e => e.Column("SomeColumn")).Having(
             e => e.Column("SomeColumn") > 1);
     var result = QueryTranslator.Translate(expression);
     Assert.AreEqual(SelectExpressionWithGroupByHavingSyntax.Clean(), result.Sql.Clean());
 }
Example #10
0
 /// <summary>
 /// Specifies the projection of the query.
 /// </summary>
 /// <param name="dbSelectQuery">The target <see cref="DbSelectQuery"/></param>
 /// <param name="expression">The <see cref="DbExpression"/> that represents the projection.</param>
 /// <returns><see cref="DbSelectQuery"/></returns>
 public static DbSelectQuery SelectDistinct(this DbSelectQuery dbSelectQuery, DbExpression expression)
 {
     dbSelectQuery.QueryExpression.ProjectionExpression = expression;
     dbSelectQuery.QueryExpression.IsDistinct           = true;
     return(dbSelectQuery);
 }
Example #11
0
 /// <summary>
 /// Specifies the projection of the query.
 /// </summary>
 /// <param name="dbSelectQuery">The target <see cref="DbSelectQuery"/></param>
 /// <param name="expression">The <see cref="DbExpression"/> that represents the projection.</param>
 /// <returns><see cref="DbSelectQuery"/></returns>
 public static DbSelectQuery Select(this DbSelectQuery dbSelectQuery, DbExpression expression)
 {
     dbSelectQuery.QueryExpression.ProjectionExpression = expression;
     return(dbSelectQuery);
 }
Example #12
0
 /// <summary>
 /// Specifies the projecton of the query.
 /// </summary>
 /// <param name="dbSelectQuery">The target <see cref="DbSelectQuery"/></param>
 /// <param name="expressionSelector">A <see cref="Func{T,TResult}"/> used to specify the <see cref="DbExpression"/> that represents the projection.</param>
 /// <returns></returns>
 public static DbSelectQuery SelectDistinct(this DbSelectQuery dbSelectQuery, params Func <DbExpressionFactory, DbExpression>[] expressionSelector)
 {
     return(SelectDistinct(dbSelectQuery, DbExpressionFactory.List(expressionSelector.Select(e => e(DbExpressionFactory)))));
 }