如何使用 ASP.NET Core 2 删除数据库中的列?
How do I remove a column in a database with a migration using ASP.NET Core 2?
我先使用数据库,然后按照这个 SO ,更改了一个 class 然后做了,
add-migration -context myContext AddNewClassProperty
update-database -context myContext
而且效果很好。
但是如果我想从数据库中删除一个或多个列怎么办?后来在开发中,我确定应该有一个新的 class 并从另一个 class.
中删除属性
当我构建我的项目时,我的 dbContext class 中出现了错误,因为我删除了属性,因此 modelBuilder.Entity 方法找不到 class 成员。有道理。
我不知道我是如何进行迁移的。我试图添加一个新的迁移,但我遇到了同样的失败。
如何从 PMC 进行迁移?的确,我首先要处理数据库和代码。也许这让我现在很痛苦。
EF Core 有一种处理迁移和监视数据库状态的新方法。这既有积极的影响,也有消极的影响。积极的一面是,EF Core 不再需要完全控制数据库。您可以混合和匹配代码优先的 table 和数据库优先的 table 或 EF 甚至不知道或不关心的 table。
但是,这样做的结果是,除非 EF 实际上负责创建 table,否则它无法操纵它。 EF 用于监视状态的 class 没有关于这些 table 的任何信息,因此无法操作它们。
无论你走哪条路,我都会说只选择一条路并继续前进。如果你想先写代码,那就先写代码。让 EF 管理状态并生成迁移,永远不要直接接触数据库。如果你想处理数据库架构更改,那么就这样做吧,不要搞乱 EF 迁移。尝试混合搭配会使您的 POCO 和数据库完全不同步,并导致您遇到的问题。
我先使用数据库,然后按照这个 SO
add-migration -context myContext AddNewClassProperty
update-database -context myContext
而且效果很好。
但是如果我想从数据库中删除一个或多个列怎么办?后来在开发中,我确定应该有一个新的 class 并从另一个 class.
中删除属性当我构建我的项目时,我的 dbContext class 中出现了错误,因为我删除了属性,因此 modelBuilder.Entity 方法找不到 class 成员。有道理。
我不知道我是如何进行迁移的。我试图添加一个新的迁移,但我遇到了同样的失败。
如何从 PMC 进行迁移?的确,我首先要处理数据库和代码。也许这让我现在很痛苦。
EF Core 有一种处理迁移和监视数据库状态的新方法。这既有积极的影响,也有消极的影响。积极的一面是,EF Core 不再需要完全控制数据库。您可以混合和匹配代码优先的 table 和数据库优先的 table 或 EF 甚至不知道或不关心的 table。
但是,这样做的结果是,除非 EF 实际上负责创建 table,否则它无法操纵它。 EF 用于监视状态的 class 没有关于这些 table 的任何信息,因此无法操作它们。
无论你走哪条路,我都会说只选择一条路并继续前进。如果你想先写代码,那就先写代码。让 EF 管理状态并生成迁移,永远不要直接接触数据库。如果你想处理数据库架构更改,那么就这样做吧,不要搞乱 EF 迁移。尝试混合搭配会使您的 POCO 和数据库完全不同步,并导致您遇到的问题。