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

7
我正在学习F#并尝试使用类型提供程序,我已经将强大的连接到了SQL Server实例。我能够使用F#的查询表达式语法对数据库执行查询,但我想看到类型提供程序生成的SQL。我尝试将Console.Out分配给我认为是,但我收到一个错误,说:

Error FS0810: Property 'Log' cannot be set

如何记录类型提供程序生成的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
1个回答

6
你可以监听 SqlQueryEvent 事件:
FSharp.Data.Sql.Common.QueryEvents.SqlQueryEvent |> Event.add (printfn "Executing SQL: %O")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接