Problem area
Query("TableName") does not accept shorthand notations to reference the table. This can be painful when you have a lot many columns and you're performing a join with another table which clashing columns.
In this scenario, you are required to prefix the entire TableName to the column, likes so
Query("TableName").Select("TableName.Column")
You can see how this would be painful in writing columns in the hundreds.
Suggested fix
Allow the Query object to accept a shorthand accessor for the table name which can be used to prefix the required columns.
Like so,
Query("TableName tb).Select("tb.Column")
This will make things so much easier.