 
         unless keyValues?
             F.throw("You must provide key values as arguments to #{opName}One()")
-        
+
         queryArgument = @fromJS(queryArgument)
         if _.isObject(keyValues)
             covered = @schema.coversSomeKey(keyValues)

    fromJS: (values) ->
        for key, value of values
            property = @schema.columnsByProperty[key]
            
            converter = property?.jsType?.convert
            continue if (!_.isFunction(converter))


    count: (cb = null) -> @newSelect().select(sql.count(1)).tryCall('scalar', cb)

    all: (cb) -> @newSelect().tryCall('allObjects', cb)
    allRows: (cb) -> @newSelect().tryCall('allRows', cb)

    where: (clause, cb) -> @newSelect().where(clause).tryCall('allObjects', cb)

