在更改数据库表后更新模型类

Posted

技术标签:

【中文标题】在更改数据库表后更新模型类【英文标题】:Updating the model classes after a change to the database table 【发布时间】:2021-08-20 19:59:39 【问题描述】:

我有一个很菜鸟的问题,但请多多包涵。想象一下,我们有一个数据库(此处为 MS SQL),其中定义了所有表等,我决定向其中一个表添加一个新列。 我在 SQL Server 中“直接”执行此操作 - 我右键单击要更改的表,选择“设计”,然后向该表添加一列。 现在,如何“更新”我的 ASP.NET 应用程序的相应模型类?如果我理解正确,我需要重新搭建数据库,这会自动更新吗?我该如何处理?我的应用程序以 .NetCore 3.1 为目标,我使用的是 EF Core 3.1.8。 谢谢。

【问题讨论】:

只使用 EF 迁移。先更改模型然后应用 EF 迁移-数据库更新,您可以关注此link EF Core Power Tools 也可以帮助您完成此工作流。 【参考方案1】:

您使用的是数据库优先方法,这意味着数据库决定您的模型的外观。要应用数据库中的更新,您需要重新构建 dbcontext。 (注意:您可能需要使用 -f force 标志)。查看下面的链接了解更多信息。

https://entityframeworkcore.com/approach-database-first

https://www.learnentityframeworkcore.com/migrations/commands/pmc-commands#scaffold-dbcontext

【讨论】:

或者只是为您的实体添加一个新属性。

以上是关于在更改数据库表后更新模型类的主要内容,如果未能解决你的问题,请参考以下文章

更新子表后数据库触发器更新父表上的行

使用ef框架连接数据库,本来可以,但修改了数据库表后连不上了,也没报错

“创建目标表后架构已更改”错误如何发生?

Ember js - 更新其他表后 Hasmany 关系中断

您能否在视图上编写触发器,该视图在更改其基表后利用插入和删除表中的数据?

MS Access 2007 - 导入表后,记录集不再可更新