SQLite型プロバイダを使う方法


はじめに

SQLiteの型プロバイダを使おうとして嵌ったので備忘録として残しておきます。
// おそらく他のDB系の型プロバイダも同じ方法でできると思う。

方法

1. SqliteReadSample というプロジェクトを作成します。

2. Visual Studio Code でプロジェクトを開きます。

3. 必要なライブラリを nuget から導入します。

  • dotnet add package FSharp.Data
  • dotnet add package SQLProvider
  • dotnet add package System.Data.SQLite

4. 一度ビルドして必要なアセンブリを取得する

dotnet build -c Release

そうすると bin/Release/netcoreapp3.1/runtimes/osx-x64/native/netstandard2.0/SQLite.Interop.dll というdllが出力されているので、それを SqliteReadSample.fsproj と同じ階層にコピーします。

※ Windowsの場合は bin/Release/netcoreapp3.1/runtimes/win-x64/native/netstandard2.0/SQLite.Interop.dll を利用する.

cp bin/Release/netcoreapp3.1/runtimes/osx-x64/native/netstandard2.0/SQLite.Interop.dll ./

5. 以下のようなDBを適当に用意する

  • 作ったDBは SqliteReadSample.fsproj と同じ階層にコピーしておきます。

6. あとは通常通りSQLiteの型プロバイダを利用するだけ

- 実際にDBを作るときは、こんなヘンテコな名付けをしてはいけない(戒め
- SQLite.Interop.dll が .fsproj と同じ階層にないとビルドが失敗するのが許せない
- (TODO)どっかのタイミングでテーブルの連結とかのサンプルを足す