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 数据库了。

  • 相关阅读:
    winform+c#之窗体之间的传值 Virus
    ASP.NET 2.0 利用 checkbox获得选中行的行号, 在footer中显示 Virus
    .NET中的winform的listview控件 Virus
    我的书橱
    Expert .NET 2.0 IL Assembler·译者序一 写在一稿完成之即
    Verbal Description of Custom Attribute Value
    AddressOfCallBacks in TLS
    下一阶段Schedule
    2008 Oct MVP OpenDay 第二天 博客园聚会
    2008 Oct MVP OpenDay 第二天 颁奖·讲座·晚会
  • 原文地址:https://www.cnblogs.com/johnsony/p/EF6_Sqlite.html
Copyright © 2011-2022 走看看