【问题标题】:Upgraded .Net Core 3.1 to 5 Migration No Entity Type Mapped to Table将 .Net Core 3.1 升级到 5 迁移无实体类型映射到表
【发布时间】: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


【解决方案1】:

看起来在 EF Core 5 中,我们的一些存在表重命名的迁移必须将其更新或插入语句移动到表重命名之后,否则您会收到此错误。一旦他们在表重命名和更新/插入的表名更改为重命名的表名之后,一切正常。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 2021-10-13
    • 2021-05-03
    • 2021-08-31
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2020-08-22
    • 2020-07-26
    相关资源
    最近更新 更多