ABP默认模板修改默认数据库类型并初始化数据库数据

我这里以SQLite数据库为例,其他数据库类似。 (提示:因为SQLite数据库不支持多线程同时修改,导致项目没法正常运行,我试下来是不行,有大佬可以解决的话,请不吝赐教,谢谢!

1.下载模板

https://aspnetboilerplate.com/

 

根据自己的需求选择版本和前端框架并填写项目名称,点击“Create my project!”即可下载一个ABP标准模板项目。

 

 解压下载好的压缩包,找到目录:aspnet-core ,接下来就可以用VS打开.sln 解决方案了。

 

项目主要是分为下面几个项目分层

Application(应用层):应用层提供一些应用服务(Application Services)方法供展现层调用。一个应用服务方法接收一个DTO(数据传输对象)作为输入参数,使用这个输入参数执行特定的领域层操作,并根据需要可返回另一个DTO。

Core(领域层就是业务层):是一个项目的核心,所有业务规则都应该在领域层实现。这个项目里面,除了定义所需的领域实体类外,其实可以定义我们自己的自定义的仓储对象(类似DAL/IDAL),以及定义自己的业务逻辑层(类似BLL/IBLL),以及基于AutoMapper映射规则等内容。

EntityFrameworkCore(实体框架核心层): 这个项目不需要修改太多内容,只需要在DbContext里面加入对应领域对象的仓储对象即可。

Migrator(数据迁移层):辅助创建的控制台程序项目,如果基于DB First,我们可以利用它来创建我们项目的初始化数据库。

Web.Core(Web或者Web API的核心层) :提供了对身份登陆验证的基础处理,没有其他内容。

Web.Host (动态发布Web API的核心内容):动态发布Web API的核心内容,另外在Web API里面整合了Swagger,使得我们可以方便对Web API的接口进行调试。

Tests(单元测试) :提供了一些应用层对象的模拟测试,其中测试的数据库使用的是Entity Framework 的内存数据库,不影响实际数据库内容。

 

因为ABP模板默认使用的时SQL Server数据库配置,这里我要替换成SQLite数据库。

把项目 EntityFrameworkCore 里面的 Microsoft.EntityFrameworkCore.SqlServer包删掉,新增 Microsoft.EntityFrameworkCore.Sqlite包

 接下来就要修改数据库链接字符串了,下面三个项目中的 appsettings.json 文件中的数据库配置都要改掉。

这里根据自己的数据库文件路径和名称进行修改: "Data Source=D:\\数据库相关文件\\SQLite\\AbpDemo.db"

把 xxxxx.EntityFrameworkCore 这个项目设置为启动项

  接下来就要开始生成数据脚本了:   工具  > NuGet包管理器 > 程序包管理器控制台

在打开的程序包管理器控制台,默认项目,选中xxxxx.EntityFrameworkCore 

在开始执行脚本之前要先删除 xxxxx.EntityFrameworkCore 项目下的Migrations文件夹,因为这里面默认时SQL Server的脚本,对我来说不适用,如果换其他数据库也是一样要删除。

首先时生成脚本命令:Add-Migration Init

 通过控制台可以查看生成结果,并在 xxxxx.EntityFrameworkCore 项目的Migrations文件夹下查看脚本文件。

 可以看到脚本文件已经生成。

 接下来就是要同步到数据库了,另一个命令:Update-Database

 通过控制台查看到同步结果

 查询一下数据库,所有的表也都生成了!

但是这里的表都是空的,接下来就要往里面初始化数据了,将xxxx.Migrator项目设置为启动项,然后F5启动项目

 

 项目启动后会打开一个控制台窗口,这里输入 Y , 很快就执行结束了,然后可以去数据库确认默认数据了。

 这里可以看到默认的用户已经创建好了,可以去登陆试试了。 默认账号: admin 默认密码:123qwe

 

 

posted @   夏日旋风  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示