【发布时间】:2019-11-19 22:40:43
【问题描述】:
我有一个问题,我有一个现有的数据库,我只映射了某些实体以与 EF Core 一起使用(数据库有 100 个表,我不想要所有这些表的类。
我是这样搭建起步阶段的
dotnet ef dbcontext scaffold .. etc etc
我用连接字符串指定了特定的表。
然后,我创建了一个初始迁移以使用
对起始阶段进行快照dotnet ef migrations add Initial
我现在想添加一个基于新实体的新表。所以我使用
创建了第二次迁移dotnet ef migrations add NewTable
但是当我使用..运行它时。
dotnet ef database update NewTable
它尝试在初始迁移中添加表!因为我还没有进行迁移,所以我在 __EFMigrationsHistory 中没有记录。但我不想运行第一次迁移,因为我已经有了脚手架的表! Initial 只是创建一个快照,这是我认为你必须做的。
那么有没有办法让它认为 Initial 已经运行?把东西放进去 __EFMigrationsHistory?然后我可以运行 NewTable 迁移而不会得到“对象已存在”。
谢谢
【问题讨论】:
-
您不能手动将挂起的迁移名称插入
__EFMigrationsHistory吗? -
我做了,但我遇到了同样的问题。当我删除初始迁移代码文件时,它终于起作用了。即使我没有运行它,它仍在尝试生成表。向 __EFMigrationsHistory 添加记录没有任何区别。在我删除它之前,它仍然尝试运行第一次迁移。
标签: .net-core entity-framework-core