前面一直在找EF Code First方式来访问SQLite数据库,后面得出的结论是SQLite不支持 Code First,

虽然有非官方的库SQLite.CodeFirst可以使用,但一直没搞成功,参照项目说明也操作过,但还是没成功。

SQLite.CodeFirst项目链接https://github.com/msallin/SQLiteCodeFirst

如果有操作成功成功的小伙伴,可以告诉我一声。

下面说一下如何以DBFirst方式访问SQLite数据库

1、下载ADO.Net实体数据模型的SQLite组件设计器

这里我选的是Net45的版本,可以根据你的VisualStudio版本来下载对应 的版本。

下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

安装包地址:http://system.data.sqlite.org/downloads/1.0.109.0/sqlite-netFx45-setup-bundle-x86-2012-1.0.109.0.exe

这个安装包包含了32位的System.Data.SQLite 库以及组件 设计器

这里需要注意的是:64位的安装 包是没有组件设计器的,一定要下载32位的版本。不用担心你是64位应用程序,因为后面我们会用Nuget下载64位的System.Data.SQLite库

安装 的时候需要钩选"Install the designer components for Visual Studio 2015"

2、导入SQLite相关库

使用Nuget下载System.Data.SQLite,只需下载这一个就行了。因为这里包含了我们需要的所有库。

3、新建一个实体数据模型

选择“来自数据库的EF设计器”

选择System.Data.SQLite Database File。前面装的各种版本的64位安装包,结果这一项一直没有出现。

选择数据库文件,测试连接成功

钩选要包含的表

4、正常使用

现在就可以正常使用了,我的测试数据库里只有一张Company表

测试代码如下:

  static void Main(string[] args)
{
using (testEntities1 tt = new testEntities1())
{
foreach (COMPANY item in tt.COMPANY)
{
Console.WriteLine(item.ID + "\t" + item.NAME + "\t" + item.AGE + "\t" + item.ADDRESS + "\t" + item.SALARY);
}
}
}

我第一次运行的时候,报了一个错

解决方法是在App.Config的entityFramework/providers节点下添加一个provider

<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

这样就可以正常运行了

运行结果 :

示例代码:

https://files.cnblogs.com/files/zhaotianff/Sqlite_DBFirstDemo.zip

以EntifyFramework DBFirst方式访问SQLite数据库的更多相关文章

  1. 【Android】13.4 使用SQLite.NET.Async-PCL访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 这一节演示如何利用以异步方式(async.await)访问SQLite数据库. 二.示例4运行截图 下面左图为初始 ...

  2. 【Android】13.2 使用自定义的CursorAdapter访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 SQliteDemo1的例子演示了SimpleCursorAdapter的用法,本节我们将使用用途更广的自定义的游 ...

  3. 【Android】13.1 用Android自带的API访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 这一节我们先来看看如何直接用Android自带的API创建和访问SQLite数据库. 1.创建SQLite数据库 ...

  4. 【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 Android 内置了三种数据存取方式:SQLite数据库.文件.SharedPreferences. 这一章我们 ...

  5. Qt5 开发 iOS 应用之访问 SQLite 数据库

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1   源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...

  6. Android数据的四种存储方式之SQLite数据库

    Test.java: /** * 本例解决的问题: * 核心问题:通过SQLiteOpenHelper类创建数据库对象 * 通过数据库对象对数据库的数据的操作 * 1.sql语句方式操作SQLite数 ...

  7. 并发访问sqlite数据库出现databse is locked的错误的一个解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在并发访问sqlite数据库会出现这样一个错误:databseis locked,这是sqlite数据库对并发支持不太 ...

  8. 【C#】使用EF访问Sqlite数据库

    原文:[C#]使用EF访问Sqlite数据库 1. 先上Nuget下载对应的包 如图,搜索System.Data.SQLite下载安装即可,下载完之后带上依赖一共有这么几个: EntityFramew ...

  9. 【Android】13.3 使用SQLite.NET-PCL访问SQLite数据库

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 本章开头已经说过了,SQLite.NET-PCL用起来很爽,这一节咱们看看怎样使用吧. 二.示例3运行截图 下面左 ...

随机推荐

  1. MySQL参数: innodb_flush_log_at_trx_commit和sync_binlog

    innodb_flush_log_at_trx_commit 当innodb_flush_log_at_trx_commit=0时, log buffer将每秒一次地写入log file, 并且log ...

  2. java调用jni oci接口宕机原因排查

    调用最简单的JNI没有出错,但是涉及到OCI时就会异常退出,分析后基本确定是OCI 11g中的signal所致,参考ora-24550 signo=6 signo=11解决. 但是这个相同的so库直接 ...

  3. IDEA一些自动补全方式

    第一种:系统自带:可以CTRL + j 可以查看 psvm 也就是public static void main的首字母. 依次还有在方法体内键入for会有一个fori的提示,选中然后tab键,就会自 ...

  4. JS实现下载的常用方案

    如何使用JS实现异步下载吗?即:既能实现下载又不刷新页面.这时我们常常会想到使用ajax,但是由于ajax接受的response始终是字符串,因此并不能使用ajax来实现下载功能. 常见是新建下载的方 ...

  5. C#读取Word指定页的内容

    /// <summary> /// Word按页读取内容 /// </summary> /// <param name="page">页数< ...

  6. uboot下如何使用fatls工具?

    答: 如列出第一个sd卡第一个分区中的文件: fatls mmc 0:1 /

  7. yii2增删改查操作

    https://www.yiichina.com/tutorial/996 https://www.yiichina.com/tutorial/834 一.新增 使用model::save()操作进行 ...

  8. 一、postman简介

    一.场景 1.开发接口的时候需要快速的调用接口,以便调试 2.测试的时候需要非常方便的调用接口,通过不同的参数去测试接口的输出 3.这些接口调用是需要保存下来的反复运行的 4.在运行过程中如果有断言( ...

  9. TLS握手协议分析与理解——某HTTPS请求流量包分析

    https://xz.aliyun.com/t/1039 HTTPS简介 HTTPS,是一种网络安全传输协议,在HTTP的基础上利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护 ...

  10. bat批处理文件怎么将路径添加到path环境变量中

    bat批处理文件怎么将路径添加到path环境变量中 摘自:https://zhidao.baidu.com/question/1887763143433391788.html 永久性的: @echo ...