VS2013下使用建立sqlite的ADO.NET實體資料模型
阿新 • • 發佈:2019-02-05
前言
但是這個問題跟我的沒有半毛錢關係我只是各種搜尋答案而已。
解決方案
- 安裝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的版本沒有任何關係。config檔案新增Data Provider說明
修改config檔案,應該如下圖所示:
<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資料庫。
注意:LinQ等支援暫時未測試。
問題表現
- 資料連線中無法新增sqlite資料庫,
(anyway我已經不記得我當時是安裝了什麼東西導致可以新增連線了) - ADO.NET實體類無法正確新增SQLite實體
就是在新增ADO.NET之後,資料引用一直沒有SQLite的資料庫。
P.S.