CSV类型提供程序无法在F#interactive中找到列

Mar*_*cky 5 f# f#-interactive type-providers f#-data

所以,假设我有一个CSV文件,其中包含包含Population和Profit列的标题,我想在F#interactive中使用它.我有以下代码:

#r "../packages/FSharp.Data.1.1.10/lib/net40/FSharp.Data.dll"

open FSharp.Data

// load csv header
let cities = new CsvProvider<"cities.csv">()

// how to reach data
let firstRow = cities.Data |> Seq.head
let firstPopulation = firstRow.Population
let firstProfit = firstRow.Profit
Run Code Online (Sandbox Code Playgroud)

我收到F#interactive的错误:

错误FS0039:未定义字段,构造函数或成员"Population"

这对我来说似乎很困惑,因为VS中的intellisense通过CSV类型提供程序从我的数据中获取此列没有任何问题.

此外,我尝试使用相同类型的提供程序创建一个程序,它一切正常.像这样:

open FSharp.Data

[<EntryPoint>]
let main argv = 
    use file = System.IO.File.CreateText("result.txt")
    let csv = new CsvProvider<"cities.csv">()
    for record in csv.Data do
        fprintfn file "%A" record.Population
    0
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?谢谢你的回答.

Joz*_*sky 0

试试这个代码

let Cities = new CsvProvider<"cities.csv">()
let cities = new Cities()
let firstRow = cities.Rows |> Seq.head
Run Code Online (Sandbox Code Playgroud)