2012-11-20 32 views
0

我能够获得一段代码以在.fsx脚本中运行。我从来没有看到它循环播放我正在拉回的曲目数据。所以我想我会把它放在一个.fs文件中并编译它。我遇到了两个问题。 F#IDE强调了type关键字和let query =行中的let。这是我的oode(下)我在哪里关于语法?类型提供程序问题 - 主入口点 - 语法

open System 
open System.Data 
open System.Data.Linq 
open Microsoft.FSharp.Data.TypeProviders 
open Microsoft.FSharp.Linq 

[<EntryPoint>] 
let main argv = 
    type dbSchema = SqlDataConnection<"Data Source=SQLDEV;Initial Catalog=CDDB;Integrated Security=SSPI;"> 
      let db = dbSchema.GetDataContext() 
      // Enable the logging of database activity to the console. 
      db.DataContext.Log <- System.Console.Out 
      let query1 = 
       query { 
        for row in db.SoundRecording do 
        select row 
        take 50 
       } 
      query1 |> Seq.iter (fun row -> printfn "%s - %s" row.DisplayArtist row.DisplayTitle) 
      0 // return an integer exit code 

回答

2

这可能工作 - 你不能在函数内部类型定义

open System 
open System.Data 
open System.Data.Linq 
open Microsoft.FSharp.Data.TypeProviders 
open Microsoft.FSharp.Linq 
type dbSchema = SqlDataConnection<"Data Source=SQLDEV;Initial Catalog=CDDB;Integrated Security=SSPI;"> 
[<EntryPoint>] 
let main argv = 

      let db = dbSchema.GetDataContext() 
      // Enable the logging of database activity to the console. 
      db.DataContext.Log <- System.Console.Out 
      let query1 = 
       query { 
        for row in db.SoundRecording do 
        select row 
        take 50 
       } 
      query1 |> Seq.iter (fun row -> printfn "%s - %s" row.DisplayArtist row.DisplayTitle) 
      0 // return an integer exit code