以EntifyFramework DBFirst方式访问SQLite数据库

前面一直在找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表

测试代码如下:

 1  static void Main(string[] args)
 2         {
 3             using (testEntities1 tt = new testEntities1())
 4             {
 5                 foreach (COMPANY item in tt.COMPANY)
 6                 {
 7                     Console.WriteLine(item.ID + "\t" + item.NAME + "\t" + item.AGE + "\t" + item.ADDRESS + "\t" + item.SALARY);
 8                 }
 9             }
10         }

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

解决方法是在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

转载于:https://www.cnblogs.com/zhaotianff/p/9609540.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值