【发布时间】:2021-05-18 19:30:12
【问题描述】:
将我们的应用程序从 .Net Core 3.1 升级到 5.0.6,一切都在使用现有数据库进行。如果我删除数据库并运行迁移,我会收到此错误:
没有实体类型映射到数据操作中使用的表“UserClause”。要么在模型中添加对应的实体类型,要么在数据操作中指定列类型。
UserClause 表不再存在,它在失败的迁移中被重命名,但如果此特定迁移完成,它将是 Agreement 表,但由于缺少实体类型,它会在此迁移中抛出,这肯定也不存在,因为它最初是在一年前运行的。
任何人都知道为什么迁移会寻找实体类型,以及如何解决这个问题?这似乎不应该在运行迁移时检查实体。
【问题讨论】:
-
我在使用 EF 6 时遇到了同样的问题 它通过在 deleteData 语句中添加 keyColumnType 来解决:migrationBuilder.DeleteData( table: "oldTable", keyColumn: "Id", keyColumnType: "Identity", keyValue : 1);
标签: .net-core entity-framework-core entity-framework-5 .net-5