前言
特别鳴謝:
VS2012啟用SQLite的Data Provider
以及
using-sqlite-with-entity-framework-6
第二篇文章的連結是在stackoverflow找到的, sqlite-connection-not-appearing-in-entity-data-model-wizard
但是這個問題跟我的沒有半毛錢關系我隻是各種搜尋答案而已。
解決方案
- 安裝DDEX(aka Data Designer Extensibility)
- NuGet擷取EF6實體最新版本以及擷取System.Data.SQLite.EF6
- 工程修改為x86平台運作
- config檔案添加Data Provider說明
- 正常添加ADO.NET的SQLite實體資料模型
詳細
環境
Win7 SP1 64bit
VS2013
詳細解決方案
-
安裝DDEX(aka Data Designer Extensibility)
System.Data.SQLite is an ADO.NET provider for SQLite
NOTE: 文章釋出時64-bit版本也已經有designer,[del]但是未經驗證,是以請務必安裝32-bit的版本。[/del]
2016.12.15 更新:已驗證,4.5.1版本的DDEX,64位下無法成功使用designer,隻有32位可以(但是32位相容64位)。是以大家請使用32位的版本。
下載下傳的程式名字在目前版本應該是sqlite-netFx451-setup-bundle-x86-2013-1.0.101.0.exe
總之,下載下傳的應該是:Setups for 32-bit Windows (.NET Framework 4.5.1)對應的程式。
安裝的時候選custom就好,具體打鈎内容如下,主要是必須勾選Designer:

(有人提及到了要允許GAC,安裝過程中我沒有遇到,如果沒有正确添加,可以手動到安裝目錄下的GAC裡面去添加,具體添加方法請自行搜尋)
安裝完畢之後,工具-連接配接到資料庫中應該可以添加SQLite資料庫。
-
NuGet擷取EF6實體最新版本以及System.Data.SQLite.EF6
工程-管理NuGet程式-使用EF6最新版本
工程-管理NuGet程式-搜尋sqlite,找到System.Data.SQLite.EF6,安裝。(應該僅依賴EF6)
- 工程設定為解決方案平台為x86。 我隻在x86平台下成功(盡管我的開發環境是64-bit),并且初步測試與DDEX的版本沒有任何關系。
VS2013下使用建立sqlite的ADO.NET實體資料模型 -
config檔案添加Data Provider說明
修改config檔案,應該如下圖所示:
VS2013下使用建立sqlite的ADO.NET實體資料模型
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
然後build / rebuild 工程。
-
正常添加ADO.NET的SQLite實體資料模型
工程-添加-建立項-資料-ADO.NET實體資料模型-從資料庫-可以選擇SQLite資料庫。
VS2013下使用建立sqlite的ADO.NET實體資料模型
注意:LinQ等支援暫時未測試。
問題表現
-
資料連接配接中無法添加sqlite資料庫,
(anyway我已經不記得我當時是安裝了什麼東西導緻可以添加連接配接了)
-
ADO.NET實體類無法正确添加SQLite實體
就是在添加ADO.NET之後,資料引用一直沒有SQLite的資料庫。
VS2013下使用建立sqlite的ADO.NET實體資料模型
P.S.
附上檢視sqlite資料庫的好用工具:
sqlitebrowser