SQLProvider不适用于任何数据库类型。 SqlTypeProvider [F#] [macOS]

时间:2017-02-25 23:41:49

标签: mysql f# mono type-providers

我尝试使用SQLProvider访问MySql数据库。到目前为止,我有这段代码:

let [<Literal>] resolutionPath = @"../mysql/"
let [<Literal>] connectionString = 
    "Server=localhost;Database=mydb;User=root;Password=root"

type sql = SqlDataProvider< 
            ConnectionString = connectionString,
            DatabaseVendor = Common.DatabaseProviderTypes.MYSQL,
            ResolutionPath = resolutionPath,
            IndividualsAmount = 1000,
            UseOptionTypes = true >

let ctx = sql.GetDataContext ()

遇到麻烦后,我设法编译了这段代码,甚至连接到我的本地数据库。

不幸的是,ctx成员没有自动完成功能(F#将ctx视为对象类型)。当我做类似的事情时:

ctx.``some_table``

它不会编译。

尝试连接Sqlite或PostgreSQL数据库时遇到同样的问题。 我是在MacOS 10.12上,而且我使用的是最新的mono和SQLProvider版本(来自nuget)。有没有人在unix上有类似的问题?是否有任何其他类型的sql数据库提供程序(不仅适用于Windows)?我看到还有SqlDataConnection,它可以在macOS / linux和MySql上运行吗?

1 个答案:

答案 0 :(得分:0)

响应很晚,我知道这并不完全适用于mysql,但请参见:F# Connect SQLProvider with Postgres。这可能是一个类似的问题。

在多次重启软件后,我设法使其在Visual Studio Code和Rider中运行。我基本上在probject内创建了一个lib文件夹,我复制了:

System.Runtime.CompilerServices.Unsafe.dll
System.Threading.Tasks.Extensions.dll
System.Memory.dll
Npgsql.dll