anchor.diff:              if sqlQuery.Distinct then ~~(sprintf "SELECT DISTINCT %s "  columns)
               else ~~(sprintf "SELECT %s "  columns)
               // FROM
  -            ~~(sprintf "FROM %s as %s " baseTable.FullName baseAlias)         
  +            ~~(sprintf "FROM %s as [%s] " baseTable.FullName baseAlias)         
               fromBuilder()
               // WHERE
               if sqlQuery.Filters.Length > 0 then
  
positive.code:             let parameters = ResizeArray<_>()
              let (~~) (t:string) = sb.Append t |> ignore
              
              // SQL query ordering syntax is ordered in the following manner
              // SELECT [alias].[field] as '[alias].[field]' [, .. ]
              // FROM [TABLE_1] as [alias1] join [TABLE_2] as [Alias_2] on ...
  
              // to simplfy (ha!) the processing, all tables should be aliased.
              // the LINQ infrastructure will cause this will happen by default if the query includes more than one table
              // if it does not, then we first need to create an alias for the single table
  
              let getTable x =
                  match sqlQuery.Aliases.TryFind x with
                  | Some(a) -> a
                  | None -> baseTable
  
              let singleEntity = sqlQuery.Aliases.Count = 0
              // now we can build the sql query that has been simplified by the above expression converter
              // working on the basis that we will alias everything to make my life eaiser
              // first build  the select statment, this is easy ...
              let columns = 
  
negative.code:             [for r in con.GetSchema("DataTypes").Rows -> 
                  string r.["TypeName"],  unbox<int> r.["ProviderDbType"], string r.["DataType"]]
  
          // create map from sql name to clr type, and type to lDbType enum
          let sqlToClr', sqlToEnum', clrToEnum' =
              clr
              |> List.choose( fun (tn,ev,dt) ->
  