2

我正在尝试遍历 Freebase 国家/地区列表,如下所示:

#r @"..\packages\FSharp.Data.1.1.4\lib\net40\FSharp.Data.dll"

open FSharp.Data

FreebaseData.GetDataContext().``Time and Space``.Location.Countries
|> Seq.iter (fun c -> printfn "%s" c.Name)

在 F# Interactive 中执行此操作会给我以下错误:

System.Net.WebException: The remote server returned an error: (400) Bad Request.
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "Unique query may have at most one result. Got 2",
    "locationType": "other",
    "location": "/location/country/iso_alpha_3"
   }
  ],
  "code": 400,
  "message": "Unique query may have at most one result. Got 2"
 }
}

我能做些什么来解决这个问题吗?

谢谢, - 罗布

4

2 回答 2

4

这是由于 Freebase 类型提供程序中的一个错误 - 请参见此处。根据那里对问题的描述,您可能可以尝试这样的解决方法:

let countries = query {
    for country in freebase.``Time and Space``.Location.Countries do
    where (country.Name <> "Ghana")
}

countries
|> Seq.iter (fun c -> printfn "%s" c.Name)
于 2013-05-20T14:52:29.947 回答
1

这已在 FSharp.Data 1.1.5 中修复

于 2013-07-01T09:56:29.503 回答