public void ShouldCreateConcatExpression()
        {
            var factory    = new DbExpressionFactory();
            var expression = factory.Concat(factory.Constant("DummyExpression"),
                                            factory.Constant("AnotherDummyExpression"));

            Assert.IsNotNull(expression.LeftExpression);
            Assert.IsNotNull(expression.RightExpression);
            Assert.IsTrue(expression.ExpressionType == DbExpressionType.Concat);
        }
        /// <summary>
        /// Specifies the tables, views, derived tables, and joined tables used in DELETE, SELECT, and UPDATE statements.
        /// </summary>
        /// <param name="query">The target <see cref="DbQuery{TQueryExpression}"/></param>
        /// <param name="expression">A <see cref="DbExpression"/> that represents the from clause.</param>
        /// <returns><see cref="DbQuery{TQueryExpression}"/></returns>
        public static DbQuery <TQueryExpression> From <TQueryExpression>(this DbQuery <TQueryExpression> query, DbExpression expression)
            where TQueryExpression : DbQueryExpression, new()
        {
            var dbExpression = expression;

            if (!query.QueryExpression.FromExpression.IsNull())
            {
                if (dbExpression.ExpressionType == DbExpressionType.Join)
                {
                    dbExpression = DbExpressionFactory.Concat(query.QueryExpression.FromExpression, dbExpression);
                }
                else
                {
                    dbExpression = DbExpressionFactory.List(new[] { query.QueryExpression.FromExpression, expression });
                }
            }
            query.QueryExpression.FromExpression = dbExpression;
            return(query);
        }
 public void ShouldCreateConcatExpression()
 {
     var factory = new DbExpressionFactory();
     var expression = factory.Concat(factory.Constant("DummyExpression"),
                                     factory.Constant("AnotherDummyExpression"));
     Assert.IsNotNull(expression.LeftExpression);
     Assert.IsNotNull(expression.RightExpression);
     Assert.IsTrue(expression.ExpressionType == DbExpressionType.Concat);
 }