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

一步一步教你用c# entity framework6 连接 sqlite 实现增删改查的更多相关文章

  1. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

  2. 2、hibernate七步走完成增删改查

    一.hibernate框架介绍如下 1.框架=模板 2.Hibernate是对象模型与关系数据库模型之间的桥梁 3.hibernate持久化概念 什么是ORM ORM是对象关系映射,是一种数据持久化操 ...

  3. 手把手教你用nodejs+SQL Server2012做增删改查

    1.开发工具WebStorm 10.0.4 2.打开WebStorm 10.0.4新建项目:

  4. MongoDB 之 手把手教你增删改查 MongoDB - 2

    我们在  MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1  中学习了如果安装部署一个 MongoDB 如果没看到我的金玉良言的话,就重新打开一次客户端和服务端吧 本章我们 ...

  5. 手把手教你基于koa2,mongoose实现增删改查

    初始化项目 npm init -y 先安装一波乱七八糟的依赖插件(需要具备一定的koa2知识,至于mongoDB自行百度安装教程),模板引擎我使用的是art-template(据说是性能最好的,而且是 ...

  6. 手把手教你ASP.NET Core:使用Entity Framework Core进行增删改查

    新建表Todo,如图 添加模型类 在"解决方案资源管理器"中,右键单击项目. 选择"添加" > "新建文件夹". 将文件夹命名为 Mo ...

  7. 手把手教你AspNetCore WebApi:增删改查

    前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS.基础已经建好,从现在开始要真正实现待办事项的功能了. 新建表 CREATE TABLE [dbo].[To ...

  8. 【良心保姆级教程】java手把手教你用swing写一个学生的增删改查模块

    很多刚入门的同学,不清楚如何用java.swing去开发出一个系统? 不清楚如何使用java代码去操作数据库进行增删改查一些列操作,不清楚java代码和数据库(mysql.sqlserver)之间怎么 ...

  9. ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】

    今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...

随机推荐

  1. [解读REST] 1.REST的起源

    0. 世界上第一个网站 1990年12月20日,这一天对于现在的互联网来说意义非凡.欧洲核子研究组织(CREN)的科学家Tim Berners-Lee在一台NeXT电脑上启动了世界上的第一个网站(当然 ...

  2. MongoDB快速入门

    http://www.yiibai.com/mongodb/mongodb_quick_guide.html 创建数据库 MongoDB use DATABASE_NAME 用于创建数据库.该命令如果 ...

  3. 使用WinDBG调试查看C#内存转储文件

    有时候我们想查看一个正在运行的程序内存中的数据,可以在任务管理器将内存状态保存为转储文件,并使用WinDBG验证,这里我们来试试: 0.安装WinDBG 1.首先写个代码用来测试 一个class pu ...

  4. 常用的HTTP状态码

    成功的状态码: 200 – 服务器成功返回网页 304 – 未修改 失败的状态码: 404 – 请求的网页不存在 503 – 服务器暂时不可用 500 – 服务器内部错误 下面的不是很常用,记住上面那 ...

  5. MySQL数据库分区的概念与2大好处(1)

    我们大家都知道通过MySQL数据库分区(Partition)可以提升MySQL数据库的性能,那么到底什么是MySQL数据库分区呢?以及其实际应用的好处的表现有哪些呢?以下的文章就是对这些内容的描述. ...

  6. php 守护进程类

    最近个人项目中需要后台运行任务,之前一直是用nouhp & + 重定向输出 来后台跑任务,后来觉得不好维护原始数据,同时可能也没有直接操作进程那么稳吧(没验证).废话少说,来看分析. 首先,我 ...

  7. LINUX 笔记-条件测试

    格式:test condition 文件测试状态 -d 目录 -s 文件长度大于0,非空 -f 正规文件 -w 可写 -l 符号链接 -u 文件有suid位设置 -r 可读 -x 可执行 字符串测试 ...

  8. java分页算法,传入当前pageIndex,pageSise,dataTotal可计算出页面上显示的页码,和是否启动上一页下一页

    public class CalculationPage { private Boolean showStartPagerDot; private Boolean showEndPagerDot; p ...

  9. JS中OOP之模拟封装和继承和this指向详解

    大家好,今天我带大家学习一下js的OOP, 大家都知道,面向对象有三个基本特征,继承,封装和多态,面向对象的语言有那么几种,C++,PHP,JAVA等,而功能强大的JS可以模拟实现面向对象的两大特征, ...

  10. Spring MVC 快捷定义 ViewController

    WHY  :               为什么我们需要快捷定义 ViewController ? 在项目开发过程中,经常会涉及页面跳转问题,而且这个页面跳转没有任何业务逻辑过程,只是单纯的路由过程 ...