/// <summary> /// Constructor for building a select statement for using in CRUD operations /// with a command builder. /// </summary> /// <param name="operationInput"></param> /// <param name="lookupCondition"></param> /// <param name="operationType"></param> public SqlQueryBuilder(DataEntity operationInput, Expression lookupCondition, Globals.OperationType operationType) { Parse(operationInput, lookupCondition, operationType); }
/// <summary> /// Create a select string from the given table and columns. /// </summary> /// <param name="input"></param> /// <param name="lookupCondition"></param> /// <param name="operationType"></param> private void Parse(DataEntity input, Expression lookupCondition, Globals.OperationType operationType) { StringBuilder query; switch (operationType) { case Globals.OperationType.Create: query = new StringBuilder(CreateKeyword); // add into clause query.Append(ParseInsertQuery(input)); break; case Globals.OperationType.Delete: query = new StringBuilder(DeleteKeyword); // add from clause query.Append(ParseFromClause(input)); break; case Globals.OperationType.Update: query = new StringBuilder(UpdateKeyword); //add the set values query.Append(ParseUpdateQuery(input)); break; default: query = new StringBuilder(SelectKeyword); // add columns query.Append(ParseColumns(input.Properties)); // add from clause query.Append(ParseFromClause(input)); break; } // add where clause (optional)) if (lookupCondition != null) { var whereClause = new StringBuilder(" where "); ParseWhereClause(whereClause, lookupCondition); query.Append(whereClause); } _query = query.ToString(); }