如何更新由 Scaffold-DbContext 生成的现有模型 class

How to update existing model class generated by Scaffold-DbContext

使用 ASP.NET CORE EF,我使用以下命令从现有数据库生成模型 类:

Scaffold-DbContext "Server=myserver\mydb;Database=mydb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

现在我的数据库已更改,例如我在 table AppUser 中添加了一个新列。我不想使用迁移来使模型与数据库保持同步。

我已经在数据库中进行了更改,现在我想从当前数据库状态更新现有模型 类。有什么建议吗?

我应该删除我现有的模型 类 并使用相同的命令重新生成 Scaffold-DbContext 还是我们有任何其他方法使现有模型 类 反映新的变化。

您是否在寻找类似 的内容?

据我所知,要更新模型,您必须执行相同的命令来覆盖更改,但要使用另一个附加标志。

我记得使用 -f(强制)选项覆盖更改:

Scaffold-DbContext "Server=myserver\mydb;Database=mydb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f

尽管也可以指明要更新的实体 (table):

Scaffold-DbContext "Server=myserver\mydb;Database=mydb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t <table> -f

Scaffold-DbContext 可以与选项 -Context 一起使用来扩展当前的 DbContext 文件,而不是创建一个新文件。

示例:

Scaffold-DbContext "Server=server;Database=mydb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f -Context MyDbContext

为 MyDbContext 生成的代码将放在部分 class 文件中。