public void ShouldCreateEmptyListExpression() { var factory = new DbExpressionFactory(); var expression = factory.List(); Assert.IsTrue(expression.Count() == 0); Assert.IsTrue(expression.ExpressionType == DbExpressionType.List); }
public void ShouldCreateListExpression() { var factory = new DbExpressionFactory(); var expression = factory.List(new DbExpression[] { factory.Column("SomeColumn"), factory.Column("SomeOtherColumn") }); Assert.IsTrue(expression.Count() == 2); Assert.IsTrue(expression.ExpressionType == DbExpressionType.List); }
/// <summary> /// Specifies the column to be updated. /// </summary> /// <param name="dbUpdateQuery">The target <see cref="DbQuery{TQueryExpression}"/>.</param> /// <param name="target">The <see cref="DbExpression"/> that represents the target table or view.</param> /// <param name="valueExpression">The <see cref="DbExpression"/> that represents the new value.</param> /// <returns><see cref="DbQuery{TQueryExpression}"/></returns> public static DbQuery <DbUpdateExpression> Set(this DbQuery <DbUpdateExpression> dbUpdateQuery, DbExpression target, DbExpression valueExpression) { var dbExpression = (DbExpression)DbExpressionFactory.Assign(target, valueExpression); if (!dbUpdateQuery.QueryExpression.SetExpression.IsNull()) { dbExpression = DbExpressionFactory.List(new[] { dbUpdateQuery.QueryExpression.SetExpression, dbExpression }); } dbUpdateQuery.QueryExpression.SetExpression = dbExpression; return(dbUpdateQuery); }
/// <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); }
/// <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 Select(this DbSelectQuery dbSelectQuery, params Func <DbExpressionFactory, DbExpression>[] expressionSelector) { return(Select(dbSelectQuery, DbExpressionFactory.List(expressionSelector.Select(e => e(DbExpressionFactory))))); }
/// <summary> /// Specifies the target columns. /// </summary> /// <param name="dbInsertQuery">The target <see cref="DbQuery{TQueryExpression}"/>.</param> /// <param name="columnSelector">A function used to specify the target columns.</param> /// <returns>A <see cref="DbInsertQuery"/> instance.</returns> public static DbInsertQuery Columns(this DbInsertQuery dbInsertQuery, params Func <DbExpressionFactory, DbExpression>[] columnSelector) { return(Columns(dbInsertQuery, DbExpressionFactory.List(columnSelector.Select(e => e(DbExpressionFactory))))); }