Click here to Skip to main content
15,892,697 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.7K   317   18  
An abstract syntax tree implementation for SQL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DbExpressions
{
    public static class DbDeleteQueryExtensions
    {

        private static readonly DbExpressionFactory DbExpressionFactory = new DbExpressionFactory();

        /// <summary>
        /// Creates a <see cref="DbQuery{TQueryExpression}"/> that is used to delete data from the database.
        /// </summary>
        /// <param name="dbDeleteQuery">The target <see cref="DbDeleteQuery"/></param>
        /// <param name="targetSelector">A <see cref="Func{T,TResult}"/> used to 
        /// specify the <see cref="DbExpression"/> that represents the target table or view.</param>
        /// <returns><see cref="DbDeleteQuery"/></returns>
        public static DbDeleteQuery Delete(this DbDeleteQuery dbDeleteQuery, Func<DbExpressionFactory, DbExpression> targetSelector)
        {
            return Delete(dbDeleteQuery, targetSelector(DbExpressionFactory));
        }


        /// <summary>
        /// Creates a <see cref="DbQuery{TQueryExpression}"/> that is used to delete data from the database.
        /// </summary>
        /// <param name="dbDeleteQuery">The target <see cref="DbDeleteQuery"/></param>
        /// <param name="target">The <see cref="DbExpression"/> that represents the target table or view.</param>
        /// <returns><see cref="DbQuery{TQueryExpression}"/></returns>
        public static DbDeleteQuery Delete(this DbDeleteQuery dbDeleteQuery, DbExpression target)
        {
            dbDeleteQuery.QueryExpression.Target = target;
            return dbDeleteQuery;
        }
    }
}

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