anchor.diff:                              Some (createNull(t |> typeToDbType))
                           | x -> failwithf "Method '%s' is not implemented." x
                   | Not n ->
  -                    let sql, parameters = map2(n.Operand)
  -                    Some ([" NOT "] @ sql, parameters) 
  +                    let sql, parameters, ctor = map(n.Operand)
  +                    Some ([" NOT "] @ sql, parameters, ctor) 
                   | And e -> bin e "AND"
                   | AndAlso e -> bin e "AND"
                   | Or e -> bin e "OR"
  
positive.code:                         failwith "dont think this should ever get hit"
                          //Some ["SELECT * FROM "; q.ElementType.Name]
                      else if c.Value = null then
                          Some (["NULL"] ,[])
                      else
                          Some (valueToQueryAndParam c.Value)
                  | MemberAccess m ->
                      if m.Expression <> null && m.Expression.NodeType = ExpressionType.Parameter then
                          Some ([m.Member.Name], [])
                      else
                          failwithf "The member '%s' is not supported" m.Member.Name
                  | _ -> None
  
              match result with
              | Some r -> ExpressionResult.Skip, r
              | None -> ExpressionResult.Recurse, ([], [])
  //            if result.IsSome then 
  //                ExpressionResult.Skip, result
  //            else
  
negative.code:             DbType = dbType
          }
  
          ["@"; p.Name; ""], [p], List.empty<ConstructionInfo>
  
      let rec valueToQueryAndParam (columnIndex : int) (value : obj) = 
          let t = value.GetType()
  