Click here to Skip to main content
15,886,724 members
Articles / Database Development / SQL Server / SQL Server 2008

DbExpressions - A Step Towards Independency

Rate me:
Please Sign up or sign in to vote.
4.24/5 (12 votes)
2 Feb 2011CPOL9 min read 73.3K   317   18  
An abstract syntax tree implementation for SQL
namespace DbExpressions
{    
    /// <summary>
    /// Represents a 'SELECT' database query.
    /// </summary>
    public class DbSelectExpression : DbQueryExpression
    {
        /// <summary>
        /// Gets or sets the <see cref="DbExpression"/> that represents the projection of the query.
        /// </summary>
        public DbExpression ProjectionExpression { get; set; }
        
        /// <summary>
        /// Gets or sets the <see cref="DbExpression"/> that represents the 'GROUP BY' clause of the query.
        /// </summary>
        public DbExpression GroupByExpression { get; set; }
        
        /// <summary>
        /// Gets or sets the <see cref="DbExpression"/> that represents the 'ORDER BY' clause of the query.
        /// </summary>
        public DbExpression OrderByExpression { get; set; }

        /// <summary>
        /// Gets or sets the <see cref="DbExpression"/> that is used to limit the number of rows returned by the query.
        /// </summary>
        public DbExpression TakeExpression { get; set; }

        /// <summary>
        /// Gets or sets the <see cref="DbExpression"/> that is used to bypass a number of rows in the result set.
        /// </summary>
        public DbExpression SkipExpression { get; set; }

        /// <summary>
        /// Gets or sets a <see cref="bool"/> value that indicate if this <see cref="DbSelectExpression"/> should be treated as a sub query.
        /// </summary>
        public bool IsSubQuery { get; set; }

        /// <summary>
        /// Gets the <see cref="DbExpressionType"/> of the <see cref="DbExpression"/>.
        /// </summary>
        public override DbExpressionType ExpressionType
        {
            get { return DbExpressionType.Select; }
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Norway Norway
I'm a 39 year old software developer living in Norway.
I'm currently working for a software company making software for the retail industry.

Comments and Discussions