首页 > 解决方案 > 如何获取类型 F# 中字段的 ID

问题描述

如何创建一个函数来搜索数据库并仅返回类型的 ID?

实际上,我有一个数据库,我可以在其中搜索一对。这对是一个类型,在 F# 中:

module Types = 

    [<CLIMutable>]
    type Pair = {
        Id :int64
        PairName : string
    }

我的目标是创建一个函数,它只返回给定 PairName 的 ID (int) 的值。给定这个名称,我已经有一个返回 Pair 的函数。

      module Query = 

        let GetSingleByName name = querySingleAsync<Types.Bird> {
            script "SELECT * FROM Pair WHERE PairName = @Name LIMIT 1"
            parameters (dict ["Name", box name])
        }

我怎样才能只返回整数?不是所有的Type.Pair?

标签: .netf#m

解决方案


let getIdByName name = querySingleAsync<int64> {
    script "SELECT Id FROM Pair WHERE PairName = @Name LIMIT 1"
    parameters (dict ["Name", box name])
}

如果这不起作用,您必须提供querySingleAsync.

或者:

let getIdByName name = async {
    let! single = getSingleByName name
    return single |> Option.map (fun pair -> pair.Id)
}

推荐阅读