.net core三层架构中,在data层进行数据库迁移可能出现的问题

我在进行数据迁移遇到以下问题, 有遇到同样问题的小伙伴可以参考一下哟~
在使用三层架构时候,我的目录结构是这样的

image

我已经在program.cs中配置数据库,以及在appsetting.json中配置数据库参数
迁移数据库时候在xxx.Data终端中进行,生成Migrations文件。
需要用到以下Nuget包
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
这个时候开始迁移,就会出现以下错误
image

就需要更改指令 dotnet ef migrations add InitialMigration --startup-project ../xxx.API
还需要在xxx.Data/Context/ 下创建一个设计时工厂类,具体代码如下
image

上述代码还需要引入以下Nuget包
Microsoft.Extensions.Configuration、
Microsoft.Extensions.Configuration.FileExtensions、
Microsoft.Extensions.Configuration.Json
还需要将xxx.Data的Microsoft.EntityFrameworkCore.Design包改为
none方便API层项目引用,原来的all是不能引用的意思
就可以正确迁移到数据库了!
ps:在dotnet ef database update的时候也需要加上--startup-project ../xxx.API),因为工具默认当前(Data项目目录)查找appsetting.json,但是配置文件实际在API层

欢迎大家留言,此博客只是本人学习随手笔记,我目前还是实习小白,技术上的问题希望前辈们不吝赐教,感谢~
posted @ 2025-09-02 16:24  Liust  阅读(13)  评论(0)    收藏  举报