zoukankan      html  css  js  c++  java
  • EF6 完美支持Sqlite

    要想EF6  模式支持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了,但是同时还存在一个问题,就是程序在其他电脑上运行时无法找到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

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

  • 相关阅读:
    C#进阶系列——WebApi 路由机制剖析:你准备好了吗?
    Socket长连接和短连接的区别
    C#socket通信时,怎样判断socket双方是否断开连接
    Redis常见面试题
    [C# 线程处理系列]专题三:线程池中的I/O线程
    结对编程第一次作业
    软件工程第三次作业
    软件工程第二次作业
    人生中的第一篇博客
    CPU 分类
  • 原文地址:https://www.cnblogs.com/johnsony/p/EF6_Sqlite.html
Copyright © 2011-2022 走看看