EntityFramework Scaffold-DBContext not recognized

问题描述:

我对.net的世界很陌生,试图将我的一个应用程序移植到这个平台上,所以我一直在使用Code First进行教程,并使用实体框架连接到一个使用数据CRUD操作的数据源。EntityFramework Scaffold-DBContext not recognized

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

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

干杯

+0

我在运行PMC中的一些命令时也遇到了问题。我发现''cd'通常有助于'cd'到包含'.csproj'文件的目录(或者您拥有的任何项目文件)。 –

+0

工具包中init.ps1脚本运行不正常可能导致问题。尝试再次移除并安装软件包并重新启动VS.最坏的情况是手动运行init.ps1。 – Smit

奇怪的错误实在的,我一直用另一个方法,它在所有情况下工作。为了使用Scaffold-DBContextSqlServer的你应该有3包:

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

,然后使用程序包管理器控制台的行:

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

如果这个方法不奏效,有些事情似乎在项目被打破,所以请再使用-verbose标志,如:

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

为了获得更多的信息ñ关于你的错误。包管理器控制台中的有时简单的dotnet restore命令也有帮助。

+0

嗨,刚刚重新创建了一个新的项目,打开验证,它的工作原理。真奇怪,我没有改变任何东西,他们是我重复安装的同一个软件包(我正在按照安装了这些软件的先决条件教程)。感谢您回复我的初始查询 – JK36