使用MySQL

时间:2016-07-16 22:44:59

标签: mysql f# type-providers

我是新手,将我的F#代码库设置并连接到MySQL数据库。到目前为止,这些是我采取的以下步骤。

  1. brew install mysql
  2. 设置并创建用户名/密码&数据库并启动了mysql服务器
  3. 通过NuGet安装SQLProvider
  4. 我去了http://dev.mysql.com/downloads/connector/net/1.0.html并下载了MySql.Data.dll
  5. 我使用了MySql.Data.dll并将其移至{proj_path}/packages/SQLProvider.1.0.22/lib
  6. 我有以下代码

    namespace lukecxufs
    open FSharp.Data.Sql
    
    module test = 
    
      let [<Literal>] resolutionPath = __SOURCE_DIRECTORY__
      let [<Literal>] connectionString = "Data Source=localhost"
      type sql = SqlDataProvider< 
                  ConnectionString = connectionString,
                  DatabaseVendor = Common.DatabaseProviderTypes.MYSQL,
                  ResolutionPath = resolutionPath,
                  IndividualsAmount = 1000,
                  UseOptionTypes = true >
    

    我不断收到错误

      

    无法解析装配体。其中一个MySql.Data.dll必须存在于路径中   {proj_path}/lukecxufs../../files/sqlite
      {proj_path}/packages/SQLProvider.1.0.22/lib

    另外,如果它有所作为,我正在使用单声道

    这是我的文件夹结构。

    ├── api
    │   ├── AssemblyInfo.fs
    │   ├── Program.fs
    │   ├── api.fsproj
    │   ├── bin
    │   │   └── Debug
    │   │       ├── FSharp.Data.SqlProvider.dll
    │   │       ├── Suave.dll
    │   │       ├── api.exe
    │   │       └── api.exe.mdb
    │   ├── obj
    │   │   └── x86
    │   │       └── Debug
    │   │           ├── api.exe
    │   │           ├── api.exe.mdb
    │   │           └── api.fsproj.FilesWrittenAbsolute.txt
    │   └── paket.references
    ├── api.sln
    ├── api.userprefs
    ├── packages
    │   ├── FSharp.Core
    │   │   ├── FSharp.Core.4.0.0.1.nupkg
    │   │   ├── FSharp.Core.nuspec
    │   │   ├── [Content_Types].xml
    │   │   ├── _rels
    │   │   ├── lib
    │   │   │   ├── net20
    │   │   │   │   ├── FSharp.Core.dll
    │   │   │   │   ├── FSharp.Core.optdata
    │   │   │   │   ├── FSharp.Core.sigdata
    │   │   │   │   └── FSharp.Core.xml
    │   │   │   ├── net40
    │   │   │   │   ├── FSharp.Core.dll
    │   │   │   │   ├── FSharp.Core.optdata
    │   │   │   │   ├── FSharp.Core.sigdata
    │   │   │   │   └── FSharp.Core.xml
    │   │   │   ├── portable-net45+monoandroid10+monotouch10+xamarinios10
    │   │   │   │   ├── FSharp.Core.dll
    │   │   │   │   ├── FSharp.Core.optdata
    │   │   │   │   ├── FSharp.Core.sigdata
    │   │   │   │   └── FSharp.Core.xml
    │   │   │   ├── portable-net45+netcore45
    │   │   │   │   ├── FSharp.Core.dll
    │   │   │   │   ├── FSharp.Core.optdata
    │   │   │   │   ├── FSharp.Core.sigdata
    │   │   │   │   └── FSharp.Core.xml
    │   │   │   ├── portable-net45+netcore45+wp8
    │   │   │   │   ├── FSharp.Core.dll
    │   │   │   │   ├── FSharp.Core.optdata
    │   │   │   │   ├── FSharp.Core.sigdata
    │   │   │   │   └── FSharp.Core.xml
    │   │   │   ├── portable-net45+netcore45+wpa81+wp8
    │   │   │   │   ├── FSharp.Core.dll
    │   │   │   │   ├── FSharp.Core.optdata
    │   │   │   │   ├── FSharp.Core.sigdata
    │   │   │   │   └── FSharp.Core.xml
    │   │   │   └── portable-net45+sl5+netcore45
    │   │   │       ├── FSharp.Core.dll
    │   │   │       ├── FSharp.Core.optdata
    │   │   │       ├── FSharp.Core.sigdata
    │   │   │       └── FSharp.Core.xml
    │   │   └── package
    │   │       └── services
    │   │           └── metadata
    │   │               └── core-properties
    │   │                   └── bb309a7e309548529b66e5b42059dbb1.psmdcp
    │   ├── MySql.Data
    │   │   ├── CHANGES
    │   │   ├── MySql.Data.6.9.9.nupkg
    │   │   ├── MySql.Data.nuspec
    │   │   ├── Readme.txt
    │   │   ├── [Content_Types].xml
    │   │   ├── _rels
    │   │   ├── content
    │   │   │   ├── app.config.transform
    │   │   │   └── web.config.transform
    │   │   ├── lib
    │   │   │   ├── net40
    │   │   │   │   └── MySql.Data.dll
    │   │   │   └── net45
    │   │   │       └── MySql.Data.dll
    │   │   ├── license.html
    │   │   └── package
    │   │       └── services
    │   │           └── metadata
    │   │               └── core-properties
    │   │                   └── 8a5d4fe3e48745aea7a6ec39787d6703.psmdcp
    │   ├── SQLProvider
    │   │   ├── SQLProvider.1.0.22.nupkg
    │   │   ├── SQLProvider.nuspec
    │   │   ├── [Content_Types].xml
    │   │   ├── _rels
    │   │   ├── lib
    │   │   │   └── FSharp.Data.SqlProvider.dll
    │   │   └── package
    │   │       └── services
    │   │           └── metadata
    │   │               └── core-properties
    │   │                   └── addc797a97984054a5bf88ae510977a5.psmdcp
    │   └── Suave
    │       ├── Suave.1.1.3.nupkg
    │       ├── Suave.nuspec
    │       ├── [Content_Types].xml
    │       ├── _rels
    │       ├── lib
    │       │   └── net40
    │       │       ├── Suave.dll
    │       │       ├── Suave.pdb
    │       │       └── Suave.xml
    │       └── package
    │           └── services
    │               └── metadata
    │                   └── core-properties
    │                       └── bfd111f5611143d39dfd308db403a690.psmdcp
    ├── paket.dependencies
    └── paket.lock
    

1 个答案:

答案 0 :(得分:2)

I think the resolutionPath might be incorrect since you are supposed to give location to MySql.Data.dll file, could you try

let [<Literal>] resolutionPath = __SOURCE_DIRECTORY__ + "/packages/SQLProvider.1.0.22/lib/"

and see if that helps?