• EF6 使用SQLite Code First


    SQLite是一款轻型关系型数据库,做一个小网站,用来替代sql server或者access数据库应该会是一个不错的选择。

    ASP.NET Entity Framework 6是微软平台的著名ORM框架,说是著名是因为除了它也没几个其他的了。当然NH、Dapper等等也有不少,官方的就这一个,一路走来性能和易用性都很多提高,现在应该是有了很大用户量了,最主要的还是它本身就是官方的,所以和C#语言结合的很好,基本配置配置就可以用,尤其是Code First的使用,更加方便,可以完全不用去管数据库那边,一切都在代码中,保持了对业务的专注。

    偶尔的一个想法,使用SQLite+EF6+MVC5做一个小站,采用Code First的方式。

    然后就发现了一个很坑的事情,SQLite不支持code first……

    google了很多方案,最后发现了一个支持的组件,System.Data.SQLite.EF6.Migrations,简单分享下SQLite Code First的历程。

      1. 首先准备一个项目,安装好Entity Framework 6等 package,右键项目解决方案,找到【管理Nuget程序包】,浏览安装即可
      2. 安装System.Data.SQLite.EF6.Migrations包 ,安装完毕后Webconfig会有一些变化,默认WebConfig中会增加
    providers
    
    DbProviderFactories
    

    两个小节的配置内容,记不得安装完是什么样的 ,我这里贴一下安装完毕后调整过的配置

    <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
          <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
          <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
        </providers>
      </entityFramework>
      <system.data>
        <DbProviderFactories>
          <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" />
          <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" />
        </DbProviderFactories>
      </system.data>

    注意:<system.data> 里面的内容,如果DbProviderFactories不放在里面会报如下错误

    QQ截图20170725125435

    以上全部配置完毕,添加连接字符串如下:

    <add name="Default" connectionString="Data Source=|DataDirectory|demo.db;Version=3;Pooling=true;Cache Size=-524288;Journal Mode=Memory;Max Pool Size=100;" providerName="System.Data.SQLite.EF6" />

    好了,不出意外的话,执行数据迁移,会在app_data目录下生成一个demo.db的文件。

    百度下载一个SQLiteStudio,可以打开db文件。

    参考文章:https://www.coderbusy.com/archives/616.html  这里面有代码,需要代码的可以去看看

  • 相关阅读:
    idea输出目录详解
    svn的使用教程
    java常用技术名词解析
    1.0 idea使用教程(配置)一
    fastDFS的搭建
    log4j的配置
    关于elementUI中上传组件点击上传时页面卡死的问题
    Nginx的反向代理
    给所有实体类重写tostring方法
    Nginx的配置
  • 原文地址:https://www.cnblogs.com/buyixiaohan/p/7233507.html
Copyright © 2020-2023  润新知