求助:Entity Framework仍尝试应用已删除的旧迁移
解决Entity Framework迁移残留旧版本的问题
具体修复步骤
- 清理迁移快照与目录:检查项目
Migrations目录下的[你的DbContext名称]ModelSnapshot.cs文件,这个文件是EF的模型快照,很可能残留了旧迁移的关联信息。直接删除整个Migrations目录(如果已经生成新迁移,先备份新迁移文件再删),然后重新生成新的初始迁移:dotnet ef migrations add NewInitialCreate - 确认连接字符串正确性:核对配置文件(比如
appsettings.json)里的数据库连接字符串,确保指向的是你执行dotnet ef database drop后的目标库,避免误连到其他存有旧迁移记录的数据库。 - 手动清理迁移历史表:如果数据库没被彻底删除,手动连接数据库找到
__EFMigrationsHistory表,删除里面的旧迁移记录(如果表还存在),再执行迁移更新。 - 彻底清理编译缓存:除了
dotnet clean,手动删除项目根目录下的bin和obj文件夹,这两个目录里的旧编译文件可能带着旧迁移的缓存。删除后重新执行dotnet build,再生成新迁移并更新。 - 强制指定目标迁移:如果已经有可用的新迁移,执行更新时直接指定新迁移的名称,强制EF应用它:
dotnet ef database update NewInitialCreate
内容的提问来源于stack exchange,提问作者Mr Neptune
相关产品推荐
相关产品推荐

