[英]How to get a the ID of a field in a type F#
如何創建一個函數來搜索數據庫並僅返回類型的 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 嗎?
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)
}
我發現的解決方案之一是:
let GetSingleByName name = querySingleAsync<Types.Pair> {
script "SELECT * FROM Pair WHERE PairName = @Name LIMIT 1"
parameters (dict ["Name", box name])
}
let GetIdByName (name:string) = match GetSingleByName name |> Async.RunSynchronously with
| Some(pair)-> pair.Id
| None -> 0 |> int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.