FSharp.Data.SqlClient 具有用户定义 table 类型的类型提供程序

FSharp.Data.SqlClient Type Provider with User Defined table types

我正在使用 FSharp.Data.SqlClient 类型提供程序,并且在访问具有 Table 值参数的存储过程时不断收到错误。

我逐字尝试了文档中的示例

CREATE TYPE myTableType AS TABLE (myId int not null, myName nvarchar(30) null) 
GO 
CREATE PROCEDURE myProc 
   @p1 myTableType readonly 
AS 
BEGIN 
   SELECT myName from @p1 p 
END 

这应该允许我写以下内容

type myType = AdventureWorks2012.``User-Defined Table Types``.MyTableType

但它不返回 User-Defined Table Types

下的任何选项

这使我无法调用任何采用 Table 值参数的存储过程。

我是 运行 Microsoft SQL Server Express(64 位)版本 12.0.2000.8 和版本 1.6.2(当前最新)提供者类型

这对我有用(可能文档还没有更新):

[<Literal>]
let connectionString = @"... My connection string here..."

type TableValuedSample = SqlProgrammabilityProvider<connectionString>
type myType = TableValuedSample.dbo.``User-Defined Table Types``.myTableType
let m = [ 
    myType(myId = 2, myName = "Mike")
    myType(myId = 1, myName = "Pete") 
]
let myArray = 
    (new TableValuedSample.dbo.myProc()).AsyncExecute(m) // syntax difference
    |> Async.RunSynchronously 
    |> Array.ofSeq

let myRes = myArray.[0]
match myRes with
    | Some res -> res
    | None -> ""

结果:

>
val myArray : Option<string> [] = [|Some "Mike"; Some "Pete"|]
val myRes : Option<string> = Some "Mike"
val it : string = "Mike"

我正在使用 MSSQL 2014 和 1.6.2 提供程序。