Represents a part in where part of an sql query.
 public Query SelectWhere(WherePart condition)
 {
     var result = new SelectQuery();
     foreach (var field in Fields)
         result.AddSelectField(field);
     result.AddTable(this);
     result.AddWhere(condition);
     return result;
 }
 /// <summary>
 /// Adds a new part to the clause.
 /// </summary>
 /// <param name="clause"></param>
 public void AddPart(WherePart clause)
 {
     if (clause != null)
         _parts.Add(clause);
 }
 /// <summary>
 /// Adds a where clause to the query.
 /// </summary>
 /// <param name="clause"></param>
 /// <remarks>
 /// All where clases added using this function must be true,
 /// i.e. there is an AND operator between them.
 /// </remarks>
 public void AddWhere(WherePart clause)
 {
     _whereClause.AddPart(clause);
 }
 public StartsWithClause(WherePart left, string name)
 {
     _left = left;
     _name = name;
 }
 /// <summary>
 /// Creates a new <see cref="LessThanClause"/>
 /// </summary>
 public LessThanClause(WherePart left, WherePart right)
 {
     _left = left;
     _right = right;
 }
 public Join On(WherePart clause)
 {
     _wherePart = clause;
     return this;
 }