码迷,mamicode.com
首页 > 数据库 > 详细

EF6 Code First 完美支持Sqlite

时间:2015-05-12 15:29:48      阅读:809      评论:0      收藏:0      [点我收藏+]

标签:

要想EF6 Code First 模式支持Sqlite 得有一下几步:

一、需要安装 sqlite-netFx451-setup-bundle-x86-2013-1.0.92.0.exe 来让VS添加Ado.net 时有sqlite可选

   1) 自己去 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 下载对应.net 版本的安装文件(*注意下载文件名带bundle,这个才会对vs进行插件支持

   2)安装

要选择全部安装

技术分享

 

勾上下面两个复选框,这样才会对VS 进行支持

技术分享

然后一直下一步... ...

技术分享

这个界面会停留比较久,不过不用管它,更不要手动关闭它,这是注册vs 插件

技术分享

当你看到这个的时候,你可以打开VS 进行Sqlite 的添加了

3)Vs 添加实体模型

技术分享

你会看到这个,然后就可以愉快的和Sqlite 玩耍了

 

二、EF6支持

第一步完成后就可以程序就可以用EF的Code Frist了,但是同时还存在一个问题,就是程序在其他电脑上运行时无法找到System.Data.Sqlite 的程序支持,除非把第一步的重复一遍。

Nuget 中的 System.Data.Sqlite 包就能解决上述问题。

1) 安装Nuget 包

技术分享

在Nuget 管理界面 联机搜索 sqlite ,添加第一个,另外三个会自己添加。

也可以在Nuget 控制台输入命令:Install-Package System.Data.Sqlite

2)修改config

技术分享

 

红线中的是要自己手动添加的,代码如下

 

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
  </providers>
</entityFramework>
<system.data>
  <DbProviderFactories>
    <remove invariant="System.Data.SQLite" />
    <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />

    <remove invariant="System.Data.SQLite.EF6" />
    <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory,   System.Data.SQLite.EF6" />
  </DbProviderFactories>
</system.data>

 

PS:实体模型添加Sqlite 时只有5.0框架可选,也就意味着会先添加EF5,所以在添加System.Data.Sqlite 包前要先卸载EF5

 

至此,你就可以在VS 是用EF6来操作Sqlite 数据库了。

 

EF6 Code First 完美支持Sqlite

标签:

原文地址:http://www.cnblogs.com/johnsony/p/EF6_CodeFirst_Sqlite.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!