如何显示fsharp.data.sqlprovider类型提供程序生成的SQL

Cla*_*ick 7 sql-server f#

我正在学习F#并使用类型提供程序,我已经将这个真棒连接FSharp.Data.SQLProvider到SQL Server实例.我能够使用F#的查询表达式语法对数据库执行查询,但我希望看到类型提供程序生成的SQL.我试图将Console.Out分配给我所假设的DataContext但是我得到一个错误说

错误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
Run Code Online (Sandbox Code Playgroud)

Tuo*_*nen 6

您可以侦听SqlQueryEvent事件:

FSharp.Data.Sql.Common.QueryEvents.SqlQueryEvent |> Event.add (printfn "Executing SQL: %O")
Run Code Online (Sandbox Code Playgroud)