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.dll
→C:\Program Files\SQLite.NET\bin
System.Data.SQLite.Linq.dll
→C:\Program Files\SQLite.NET\bin
SQLite.Designer.dll
→C:\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 とかを変更したりするとできるかも、しれない…(自信ない)
ただどちらにしてもコードファーストは使えないみたいで、とても悲しい…。