使用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安装截图:

使用entity framework6 连接 SQLite 数据库   使用entity framework6 连接 SQLite 数据库

第二步:搭建项目

项目名称:SqliteEfTest

搭建步骤

1.创建SqliteEfTest的winform程序 (我选择的是4.0的,选4.0以上的应该也没有问题)

使用entity framework6 连接 SQLite 数据库

 

 

2.在程序中添加一个文件,DataBase.db(由于Sqlite是文件型数据库,所以我直接创建了一个DataBase.text,然后修改后缀名为.db即可)

打开项目所在目录,直接在根目录处添加DataBase.text,然后修改后缀名为DataBase.db

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

3.添加DataBase.txt,然后修改后缀名,文件变为:DataBase.db

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

 

 

4.点击显示所有文件,将DataBase.db文件包含到项目中

使用entity framework6 连接 SQLite 数据库

 

 

5.修改DataBase.db文件属性,使其在生成时,能够复制到bin文件夹中

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

 

 

设置完DataBase.db的相关属性后,F6生成,F5运行后,你会发现,DataBase.db文件被复制到bin文件夹中(之所以要复制到bin文件夹中,和读取本地数据库有关系,同时,和数据库链接字符串也有关系,因为程序安装路径是随意的,你读取数据库的最简单办法就是读取程序当前路径)

使用entity framework6 连接 SQLite 数据库

 

 

6.安装SQLite相关依赖包:工具-->NuGet管理器-->管理解决方案的NuGet程序包,搜索sqlite,安装

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

7.连接数据库创建表,给数据库DataBase.db创建相关表,我使用的Navicat for SQLite来创建表的

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

测试连接成功,开始创建一张表

使用entity framework6 连接 SQLite 数据库   使用entity framework6 连接 SQLite 数据库  

使用entity framework6 连接 SQLite 数据库

 

 

使用entity framework6 连接 SQLite 数据库 使用entity framework6 连接 SQLite 数据库

 

使用entity framework6 连接 SQLite 数据库

 

 

9.关闭当前Navicat连接,通过ADO.net,连接当前设计时数据库,自动生成ORM的相关代码吧!使用entity framework6 连接 SQLite 数据库使用entity framework6 连接 SQLite 数据库

 使用entity framework6 连接 SQLite 数据库   使用entity framework6 连接 SQLite 数据库 

使用entity framework6 连接 SQLite 数据库   使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库 使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库 使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

点击“完成”按钮,等待代码自动生成

使用entity framework6 连接 SQLite 数据库

 

10.修改App.config文件的连接字符串:去掉红色标记部分,只留下DataBase.db

使用entity framework6 连接 SQLite 数据库

使用entity framework6 连接 SQLite 数据库

 

 

11.下面写增删改查的相关业务逻辑,见打包上传的代码吧!

运行结果:

使用entity framework6 连接 SQLite 数据库

 

使用entity framework6 连接 SQLite 数据库

 

使用entity framework6 连接 SQLite 数据库

 

 

12.比对设计时数据库和运行时数据库的差异:添加运行时数据库(bin文件夹下面的),用Navicat 再对bin文件夹下面的DataBase.db建立连接

使用entity framework6 连接 SQLite 数据库

 

 

使用entity framework6 连接 SQLite 数据库

 

 

 

说明:

设计时表中的数据在F5后,并没有变化,但是运行时里面的 数据发生了改变,这就是修改 App.config连接字符串路径导致的。而设计时里面的数据是我未修改 连接字符串前插入的数据。先修改,再运行,是不会对设计时的表产生影响。

 

源码:

附上源代码:源代码(百度网盘下载)SqliteEfTest.zip

链接:http://pan.baidu.com/s/1ge4zGQn 密码:ugg2


以上是关于使用entity framework6 连接 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章

请教entity framework中数据更新的问题

http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity

LINQ to Entities 中的“NOT IN”子句

在使用 Entity Framework 数据库优先在表上插入行之前,如何从 PL/SQL 执行触发器?

何时使用 Spring JPA (Hibernate) Entity Manager 将连接返回到连接池?

Entity Framework 怎么使用自定义连接字符串