Visual Studio 2010 Express で Entity Framework + SQLite を使う

めっちゃハマった…。

日々之スクラッチ: Visual Studio 2010 express に SQLite を統合する

ハマりにハマってここの方法試してみたら SQLite が選択肢に出るようにはなったけど 最後の最後で「アセンブリ参照に一致しません」 とかで怒られて使えない。

最終的に以下な手順でなんとかできるようになったのでメモに残しとく。

このあたりについての知識が全くないのでこれで正しいのかは謎だけど…。

環境は

  • Windows XP Professional SP3 (32bit)
  • Visual C# 2010 Express

必要ライブラリをインストール

Setups for 32-bit Windows (.NET Framework 4.0) をダウンロードしてインストール

System.Data.SQLite: System.Data.SQLite Download Page

SQLite-1.0.xx.x-setup.exe の最新版をダウンロードしてインストール

ADO.NET 2.0 Provider for SQLite - Browse /SQLite for ADO.NET 2.0 at SourceForge.net

このときに最後に出てくる「Visual Studio に Designer をインスールしますか?」的なところで何もチェックせずに終了しておく (成功したときはこうしたので。本当にこの手順が必要かは不明…)

dllを最新版にする

C:\Program Files\System.Data.SQLite\2010\bin から以下の組み合わせでコピペする

  • System.Data.SQLite.dllC:\Program Files\SQLite.NET\bin
  • System.Data.SQLite.Linq.dllC:\Program Files\SQLite.NET\bin
  • SQLite.Designer.dllC:\Program Files\SQLite.NET\bin\Designer

Designerをインストール

C:\Program Files\SQLite.NET\bin\Designer\install.exe を実行。

System.Data.SQLite.dll の場所を求められるので C:\Program Files\SQLite.NET\bin のやつを指定する。

指定してOKしても、また求められて無限ループになるので、1回OKしたらその後はキャンセルして進める。

おわり

Visual C# 2010 Express を起動すれば、ADO.NET Entty Data Model とかで SQLiteが利用できるようになっている、はず。

これでできなかったら、最初の参考リンクにあるように machine.config とかを変更したりするとできるかも、しれない…(自信ない)

ただどちらにしてもコードファーストは使えないみたいで、とても悲しい…。