1. 程式人生 > >VS2013下使用建立sqlite的ADO.NET實體資料模型

VS2013下使用建立sqlite的ADO.NET實體資料模型

前言

但是這個問題跟我的沒有半毛錢關係我只是各種搜尋答案而已。

解決方案

  1. 安裝DDEX(aka Data Designer Extensibility)
  2. NuGet獲取EF6實體最新版本以及獲取System.Data.SQLite.EF6
  3. 工程修改為x86平臺執行
  4. config檔案新增Data Provider說明
  5. 正常新增ADO.NET的SQLite實體資料模型

詳細

環境
Win7 SP1 64bit
VS2013

詳細解決方案

  1. 安裝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:
主要是需要勾選Designer


(有人提及到了要允許GAC,安裝過程中我沒有遇到,如果沒有正確新增,可以手動到安裝目錄下的GAC裡面去新增,具體新增方法請自行搜尋)

安裝完畢之後,工具-連線到資料庫中應該可以新增SQLite資料庫。

  1. NuGet獲取EF6實體最新版本以及System.Data.SQLite.EF6
    工程-管理NuGet程式-使用EF6最新版本
    工程-管理NuGet程式-搜尋sqlite,找到System.Data.SQLite.EF6,安裝。(應該僅依賴EF6)

  2. 工程設定為解決方案平臺為x86。
    x86平臺
    我只在x86平臺下成功(儘管我的開發環境是64-bit),並且初步測試與DDEX的版本沒有任何關係。

  3. config檔案新增Data Provider說明
    修改config檔案,應該如下圖所示:
    SQLite Data Provider

<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 工程。

  1. 正常新增ADO.NET的SQLite實體資料模型
    工程-新增-新建項-資料-ADO.NET實體資料模型-從資料庫-可以選擇SQLite資料庫。
    可以正常新增

注意:LinQ等支援暫時未測試。

問題表現

  1. 資料連線中無法新增sqlite資料庫,
    (anyway我已經不記得我當時是安裝了什麼東西導致可以新增連線了)
  2. ADO.NET實體類無法正確新增SQLite實體
    就是在新增ADO.NET之後,資料引用一直沒有SQLite的資料庫。
    就是這樣

P.S.