我正在学习F#并使用类型提供程序,并且我已将真棒FSharp.Data.SQLProvider
连接到SQL Server实例。我能够使用F#的查询表达式语法对数据库执行查询,但我希望看到类型提供程序生成的SQL。我已尝试将Console.Out分配给我假设的DataContext
,但我收到错误消息
错误FS0810:属性' Log'无法设置
如何记录类型提供程序生成的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
答案 0 :(得分:4)
您可以收听事件SqlQueryEvent:
FSharp.Data.Sql.Common.QueryEvents.SqlQueryEvent |> Event.add (printfn "Executing SQL: %O")