“无法在 Database First Scaffold-DbContext 上找到 table”

“Unable to find a table” on Database First Scaffold-DbContext

出于某种原因,我遇到了这个错误。以下是规格,然后是我所做的。

Visual Studio 2017 v15.6.2

SQL Server 2008 v10.50.4

我打开包管理器控制台并添加了以下包...

Install-Package Microsoft.EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCore.Tools

然后我运行

Scaffold-DbContext "Server=ph2srv76;Database=AVDRS;Integrated Security=True;Trusted_Connection=True;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force

但在构建过程中出现以下错误...

这些只是警告(黄色),而不是错误(红色)- 您可以安全地忽略它们

为了防止其他人遇到这个问题,我通过检查并修复以下内容来解决它:

  1. 确保您在 scaffold-dbcontext 中使用的用户 ID 实际上对您要构建的表具有权限。否则脚手架找不到它们。
  2. 确保表具有主键,否则 EF 无法构建它们。想想也有道理。

完成上述步骤后,脚手架对我有用了!

我讨厌 post 显而易见的,但在我的情况下(同样的错误)我针对特定的 table 进行建模(使用 -t 选项)并且没有意识到 table 名称区分大小写。呸!

在我的例子中,我使用了 -table 选项。我这样做时遇到了同样的错误:

-表“报告,REPORT_TYPE,SAVED_REPORT”

正确的方法是这样的:

-表“REPORT”、“REPORT_TYPE”、“SAVED_REPORT”