2016-08-26 70 views
5

我正在學習F#並玩弄類型提供程序,並將真棒FSharp.Data.SQLProvider連接到SQL Server實例。我能夠使用F#的查詢表達式語法對數據庫執行查詢,但我希望看到由類型提供程序生成的SQL。我試圖Console.Out分配給我的假設是DataContext,但我得到一個錯誤說如何顯示由fsharp.data.sqlprovider類型提供程序生成的SQL

錯誤FS0810:房產「登錄」不能設置

如何登錄的SQL由類型提供者生成?

#r @"packages/SQLProvider/lib/FSharp.Data.SqlProvider.dll" 
#r @"System.Data.Linq.dll" 

open System 
open System.Data.Linq 
open FSharp.Data.Sql 

[<Literal>] 
let connectionString = @"SuperSecretString" 

type Sql = SqlDataProvider< 
      ConnectionString = connectionString, 
      DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER, 
      IndividualsAmount = 1000> 

let ctx = Sql.GetDataContext() 

ctx.Log <- Console.Out // error FS0810: Property 'Log' cannot be set 

回答

4

您可以收聽到事件SqlQueryEvent:

FSharp.Data.Sql.Common.QueryEvents.SqlQueryEvent |> Event.add (printfn "Executing SQL: %O") 
相關問題