使用entity framework6 连接 SQLite 数据库
Posted DotNet开发跳槽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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
以上是关于使用entity framework6 连接 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章
http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity
在使用 Entity Framework 数据库优先在表上插入行之前,如何从 PL/SQL 执行触发器?