我正在学习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)
您可以侦听SqlQueryEvent事件:
FSharp.Data.Sql.Common.QueryEvents.SqlQueryEvent |> Event.add (printfn "Executing SQL: %O")
Run Code Online (Sandbox Code Playgroud)