项目

切换到EF Core SQLite提供程序

ABP CLI入门 页面已提供创建含 SQLite 新解决方案的选项。使用方法请参阅 该文档 。本文档专为希望在创建解决方案后手动切换至 SQLite 的用户提供指导。

本文档说明如何为 分层 Web 应用程序解决方案模板(默认预配置SQL Server提供程序)切换至SQLite数据库提供程序。

替换Volo.Abp.EntityFrameworkCore.SqlServer包

解决方案中的 .EntityFrameworkCore 项目依赖 Volo.Abp.EntityFrameworkCore.SqlServer NuGet 包。请移除该包并添加同版本的 Volo.Abp.EntityFrameworkCore.Sqlite 包。

替换模块依赖项

.EntityFrameworkCore项目中找到您的项目名EntityFrameworkCoreModule类,从DependsOn特性中移除typeof(AbpEntityFrameworkCoreSqlServerModule),添加typeof(AbpEntityFrameworkCoreSqliteModule)(同时将using Volo.Abp.EntityFrameworkCore.SqlServer;替换为using Volo.Abp.EntityFrameworkCore.Sqlite;)。

使用UseSqlite()

在解决方案中找到所有调用UseSqlServer()的位置,替换为UseSqlite()。请检查以下文件:

  • .EntityFrameworkCore项目内的您的项目名EntityFrameworkCoreModule.cs文件
  • .EntityFrameworkCore项目内的您的项目名DbContextFactory.cs文件

根据解决方案结构的不同,您可能需要修改更多代码文件。

更改连接字符串

SQLite连接字符串与SQL Server连接字符串不同。请检查解决方案中所有appsettings.json文件并替换其中的连接字符串。SQLite连接字符串选项详情请参阅 connectionstrings.com

示例连接字符串如下:

{
    "ConnectionStrings": {
        "Default": "Filename=./MySQLiteDBFile.sqlite"
    }
}

通常需要修改.DbMigrator.Web项目中的appsettings.json文件,具体取决于您的解决方案结构。

重新生成迁移

启动模板使用 Entity Framework Core 的 Code First 迁移 。EF Core迁移依赖于所选的DBMS提供程序,因此更改DBMS提供程序会导致迁移失败。

  • 删除.EntityFrameworkCore项目下的Migrations文件夹,并重新构建解决方案
  • 在程序包管理器控制台中执行Add-Migration "Initial"命令(在解决方案资源管理器中选择.DbMigrator(或.Web)项目作为启动项目,在程序包管理器控制台中选择.EntityFrameworkCore项目作为默认项目)

这将创建包含所有数据库对象(表)配置的数据库迁移。

运行.DbMigrator项目以创建数据库并播种初始数据。

运行应用程序

至此准备工作已完成。直接运行应用程序即可开始编码。

在本文档中