【问题标题】:EntityFramework Scaffold-DBContext not recognisedEntityFramework Scaffold-DBContext 无法识别
【发布时间】:2017-07-27 12:05:13
【问题描述】:

我对 .net 世界很陌生,正在考虑尝试将我的一个应用程序移植到这个平台,所以我一直在学习使用 Code First 的教程和使用 CRUD 操作连接到数据源的实体框架用于数据。

我现在必须尝试对现有数据库进行逆向工程,因为我想尝试数据库优先方法,这将是我们最终使用的方法,因为它已经存在。但是,当我在包管理器控制台中使用 Scaffold-DBContext 命令时,我得到 Scaffold-DBContext 无法识别...

几天后重新安装框架,更新 powershell,确定 csproj 文件的位置以确保对包含框架的工具的引用正常,并删除 nuget 缓存(基本上我能找到的任何信息都可以尝试使其正常工作),我意识到如果我在项目中创建一个关闭身份验证的新项目,Scaffold-DBcontext 命令似乎可以正常工作。当我选择创建将具有身份验证的项目时,是否需要安装参考或软件包才能使其正常工作?

干杯

【问题讨论】:

  • 我在 PMC 中运行某些命令时也遇到了问题。我发现 cd 到包含您的 .csproj 文件(或您拥有的任何项目文件)的目录通常会有所帮助。
  • 工具包中的 init.ps1 脚本可能无法正常运行。尝试再次删除和安装软件包并重新启动 VS。最坏的情况是手动运行 init.ps1。

标签: asp.net-core entity-framework-core


【解决方案1】:

确实是奇怪的错误,我总是使用下一种方法,它在所有情况下都有效。为了将Scaffold-DBContextSqlServer 一起使用,您应该有 3 个包:

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

然后在Package Manager Console中使用这样一行:

Scaffold-DBcontext "your connection string" Microsoft.EntityFrameworkCore.SqlServer

如果这种方法不起作用,则项目中似乎有问题,所以请使用-verbose 标志,例如:

Scaffold-DBcontext "your connection string" Microsoft.EntityFrameworkCore.SqlServer -verbose

获取有关您的错误的更多信息。有时包管理器控制台中的简单 dotnet restore 命令也会有所帮助。

【讨论】:

  • 嗨,刚刚重新创建了一个启用了身份验证的新项目,它可以工作。真的很奇怪,我没有更改任何东西,它们与我一遍又一遍地重新安装的软件包相同(我正在按照教程安装这些作为先决条件)。感谢您回复我最初的询问
猜你喜欢
  • 1970-01-01
  • 2020-09-21
  • 2018-03-06
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多