使用entity framework6 連接 SQLite 數據庫
前言
很多小型應用程序中,都要使用數據庫,而現在比較流行的本地數據庫非SQLite莫屬。
第一步:前期准備
開發環境:vs2015 + sqlite-netFx46-setup-bundle-x86-2015-1.0.106.0.exe
注:sqlite-netFx46-setup-bundle-x86-2015-1.0.106.0.exe 為vs2015添加設計時組件,詳情請見:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki (見下圖說明)
安裝sqlite-netFx46-setup-bundle-x86-2015-1.0.106.0.exe,請勾選“Install the assemblies into the global assembly cache” 和“Install the designer components for Visual Studio 2015” 等兩項。如果你的開發環境不是 vs2015,是2012 或2013,請下載相應的版本,vs2017沒有設計時組件,預計明年一月份會出來。見官網說明:http://system.data.sqlite.org/index.html/doc/trunk/www/news.wiki 。里面有一條關於設計時組件的說明,http://system.data.sqlite.org/index.html/info/8292431f51 ,這個里面解釋了為什么沒有為vs2017做設計時組件。
sqlite-netFx46-setup-bundle-x86-2015-1.0.106.0.exe安裝截圖:
第二步:搭建項目
項目名稱:SqliteEfTest
搭建步驟
1.創建SqliteEfTest的winform程序 (我選擇的是4.0的,選4.0以上的應該也沒有問題)
2.在程序中添加一個文件,DataBase.db(由於Sqlite是文件型數據庫,所以我直接創建了一個DataBase.text,然后修改后綴名為.db即可)
打開項目所在目錄,直接在根目錄處添加DataBase.text,然后修改后綴名為DataBase.db
3.添加DataBase.txt,然后修改后綴名,文件變為:DataBase.db
4.點擊顯示所有文件,將DataBase.db文件包含到項目中
5.修改DataBase.db文件屬性,使其在生成時,能夠復制到bin文件夾中
設置完DataBase.db的相關屬性后,F6生成,F5運行后,你會發現,DataBase.db文件被復制到bin文件夾中(之所以要復制到bin文件夾中,和讀取本地數據庫有關系,同時,和數據庫鏈接字符串也有關系,因為程序安裝路徑是隨意的,你讀取數據庫的最簡單辦法就是讀取程序當前路徑)
6.安裝SQLite相關依賴包:工具-->NuGet管理器-->管理解決方案的NuGet程序包,搜索sqlite,安裝
7.連接數據庫創建表,給數據庫DataBase.db創建相關表,我使用的Navicat for SQLite來創建表的
測試連接成功,開始創建一張表
9.關閉當前Navicat連接,通過ADO.net,連接當前設計時數據庫,自動生成ORM的相關代碼吧!
點擊“完成”按鈕,等待代碼自動生成
10.修改App.config文件的連接字符串:去掉紅色標記部分,只留下DataBase.db
11.下面寫增刪改查的相關業務邏輯,見打包上傳的代碼吧!
運行結果:
12.比對設計時數據庫和運行時數據庫的差異:添加運行時數據庫(bin文件夾下面的),用Navicat 再對bin文件夾下面的DataBase.db建立連接
說明:
設計時表中的數據在F5后,並沒有變化,但是運行時里面的 數據發生了改變,這就是修改 App.config連接字符串路徑導致的。而設計時里面的數據是我未修改 連接字符串前插入的數據。先修改,再運行,是不會對設計時的表產生影響。
源碼:
附上源代碼:源代碼(百度網盤下載)SqliteEfTest.zip
鏈接:http://pan.baidu.com/s/1ge4zGQn 密碼:ugg2