2016-08-26 50 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") 
相关问题