【问题标题】:Scaffolding existing databases in ASP.NET Core (Scaffold-DbContext)在 ASP.NET Core 中为现有数据库搭建脚手架 (Scaffold-DbContext)
【发布时间】:2016-11-02 13:34:28
【问题描述】:

目前,(据我所知)搭建数据库的唯一方法是通过以下命令:Scaffold-DbContext .....

这不会为没有主键或视图的表搭建基架,并且如果您的代码中有任何错误,则不会运行。另外,我相信为了更新一张表,你必须再次搭建整个数据库(如果我错了,请纠正我)

我们会在过去的 ASP.NET 版本中看到类似 .edmx 文件的内容吗?有 GUI 的东西还是不太容易出错?

还有其他我错过的方法吗?

【问题讨论】:

  • Scaffolding 更多地意味着生成模型文件的一次性命令,然后继续使用代码优先的方法。 Afaik 没有 .edmx 的计划。我认为它被认为是非常困难和有问题的,并且很难使其与 SCM 一起使用,因此除非有真正巨大的需求,否则它不太可能来到 EF Core
  • @Tseng 实际上很有意义,脚手架更多地意味着一次性代码。如果我只想更新一张表,有没有想到的命令?

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


【解决方案1】:

我们可以使用以下包管理器控制台命令搭建整个数据库表

Scaffold-DbContext "Server=yourserver;Database=database;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir testDir 'directory to save the scaffolded tables' 

搭建一张桌子

Scaffold-DbContext "Server=yourserver;Database=database;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir testDir -t table-name  

更新现有表

Scaffold-DbContext "Server=yourserver;Database=database;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir testDir -t table-name -force -verbose

【讨论】:

    最近更新 更多