使用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

 

版权声明:本文为eshinex原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/eshinex/p/7887106.html