【问题标题】:How to update the model in Database First Approach ASP.NET "Core" when the DB changes (A new table is added)数据库更改时如何在数据库优先方法 ASP.NET“核心”中更新模型(添加新表)
【发布时间】:2023-03-16 21:49:02
【问题描述】:

我正在使用 ASP.NET core 2.0 MVC 模板并且有几个问题:

i)我使用数据库优先方法通过脚手架生成模型 MSDN Documentation。但现在我添加了一个新表(员工)并希望将该表作为模型包含在内。但是当我运行这个命令时:

Scaffold-DbContext "Server=server;Database=db;Trusted_Connection=True;" 
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Table Employees - Force

然后它会覆盖我以前的 dbcontext 类(删除所有以前的模型并在其中只添加 Employee)。我怎样才能只添加与该新表相关的模型,只保留以前的模型。

ii)类似地,如果对应的表被修改(使用 sql server 添加新列),我不知道如何更新现有模型。如果我脚手架,那么它会删除在该模型中编写的所有代码早点上课。

我找不到任何合适的数据库优先方法文档,除了 MSDN 文档,它不处理底层数据库更改时更新模型。

谢谢

【问题讨论】:

  • 无法从数据库中更新现有的脚手架。 Entity Core 不支持“数据库优先”的方法。您最初应该将 Scaffold-DbContext 用于现有数据库,然后再使用 Code-First Migrations。
  • 感谢@Valuator

标签: c# asp.net-core-mvc


【解决方案1】:

您必须删除第一个模型并创建一个新的、重新烫卷的所有您需要的模型

删除 Model.Context.tt、Model.tt、Model.edmx

从 Web.config 中删除实体字符串

以与第一次相同的方式创建 EDMX 和 Context 文件

作为代码优先方法的@Valuator

【讨论】:

  • EDMX 与 EF Core 无关。
猜你喜欢
  • 2016-12-08
  • 1970-01-01
  • 2023-04-01
  • 2018-02-26
  • 2013-08-20
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 2020-02-21
相关资源
最近更新 更多