项目描述
项目使用 ABP.io架构
创建的 Web Application 项目,使用 EF Code First
自动迁移并创建 MySQL
数据库。
1. Your startup project ‘AbpDemo.Application’ doesn’t reference Microsoft.EntityFrameworkCore.Design.
【问题描述】:
使用 update-database
命令迁移数据库时,程序包管理器控制台报错。
'您的启动项目’AbpDemo.应用程序’不引用Microsoft.EntityFrameworkCore.Design设计. 这个包是实体框架核心工具工作所必需的。请确保启动项目正确,安装该软件包,然后重试。
“Your startup project ‘AbpDemo.Application’ doesn’t reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.”
【原因分析】:
启动项上没有迁移文件(执行 add-migration 命令生成的文件)。
【参考解决方案】:
修改项目启动项为 'xxx.Web'
,程序包管理器控制台 选择 'xxx.EntityFrameworkCore.DbMigrations'
即可。
2. An error occurred using the connection to database ‘’ on server ‘localhost’.
【问题描述】:
使用 update-database
命令迁移数据库时,程序包管理器控制台报错。
An error occurred using the connection to database ‘’ on server ‘localhost’.
【原因分析】:
数据库连接字符串错误。
【参考解决方案】:
- 检查数据库连接字符串,确保连接数据库字符串正确。
【注意】:
我这里使用的数据库连接字符串 是在 XXX.DbMigrator 的 appsettings.json 文件中,不是 XXX.Web 的 appsettings.json 文件。
我一直以为引用的是 XXX.Web 的 appsettings.json 文件中的字符串,XXX.DbMigrator中的字符串为创建项目默认值没有修改,后来发现引用的是 XXX.DbMigrator 的 appsettings.json 文件中的字符串。