6

更换Mysql数据库-----基于Abo.io 的书籍管理Web应用程序 - 悟自省

 1 year ago
source link: https://www.cnblogs.com/moonstars/p/17436564.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

更换Mysql数据库-----基于Abo.io 的书籍管理Web应用程序

之前公司一直使用的是ASP.NET Boilerplate (ABP),但是当解决方案变得很大时,项目启动就变得非常慢,虽然也想了一些办法,将一些基础模块做成Nuget包的形式,让整个解决方案去引用。但是整个项目还是很臃肿,各个项目之间的耦合性太强,很难将其拆开;无法进行微服务的部署,扩展性差。之后,选择,Abp的vnext版本,优点:

1. 其新的ABP框架可方便的开发微服务并使它们相互通信。亦可作为微服务单独部署,或者可以嵌入到单个应用程序中;
2. 模块化。最明显的就是更加模块化,使项目更加清晰明了,设计更合理;
3. 更多可扩展性。新的ABP框架为内置服务提供了更多的扩展点和覆盖的能力;
4. 支持关系型和非关系型数据库,Redis作为分布式缓存,使用RabbitMQ作为事件总线的消息处理方式,使用Quartz/HangFire作为定时任务的处理,引入可了IdentityServer4服务;

接下来呢,会从 https://abp.io/上下载 官网构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的ABP应用程序

1、首先进入界面 https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF,然后根据偏好选择下载,我们以第一个为例

1673744-20230527155710261-1991771719.png

2、官网的代码放在github上,点击abp-samples,就可以看到它的所有解决方案,BookStore-Mvc-EfCore 就是我们今天要更改的解决方案

1673744-20230527160409719-659892640.png
1673744-20230527160514119-2067549109.png

3、使用Git工具克隆本项目

git clone https://github.com/abpframework/abp-samples.git
1673744-20230527161440133-466880108.png

4、稍等一段时间后,使用VS Code打开本项目(VS 2019不支持,想使用的升级到VS 2022),在工具中添加 vscode-solution-explorer 组件

1673744-20230527161829566-751081037.png

5、点击解决方案,右键选择Build,对项目进行包还原,从解决方案的结构上看,就能看到其清晰的分层,解决方案中的项目及依赖关系.

1673744-20230527161943776-534807532.png
1673744-20230527162444845-9926484.png

6、接下来点击Acme.BookStore.EntityFrameworkCore,找到它的Acme.BookStore.EntityFrameworkCore.csproj文件,更换Nuget包,解决方案之前使用的是SQLServer,要将其更改为Mysql,之后找到BookStoreDbContextFactory和BookStoreEntityFrameworkCoreModule文件,更改其引用的地方

1673744-20230527163109838-1437537994.png
1673744-20230527163413648-1965130904.png
1673744-20230527163419586-1941292850.png

7、重新修改数据库连接字符串,并删除Migrations文件夹下的文件

找到*.Web 和 *.DbMigrator中的appsettings.json文件对数据库连接字符串进行修改
"Default": "Server=localhost;Port=3306;Database=数据库名字;Uid=root;Pwd=数据库密码;Convert Zero DateTime=True"

8、在*.EntityFrameworkCore目录下执行命令进行数据库迁移,之后就可以在数据库中看到所有的表

dotnet ef migrations add Init
dotnet ef database update

9、所有准备都已完成,运行应用程序,选中*.web,右键点击Run,报错启动不了,通过查找,发现在wwwroot下没有libs文件

Could not find the bundle file '/libs/abp/core/abp.css' for the bundle 'LeptonXLite.Global'!
安装ABP CLI, 用于自动执行基于 ABP 的解决方案的一些常见任务
dotnet tool install -g Volo.Abp.Cli
之后安装libs
abp install-libs
1673744-20230527170026795-1337291599.png

再次进行Run,成功啦!!以admin作为用户名和1q2w3E* 作为密码登录到应用程序,登录成功后,就可以看到书籍管理功能

1673744-20230527170235180-1275356384.png
1673744-20230527171131866-2089284518.png

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK