2017-07-27 159 views
0

我對.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

回答

0

奇怪的錯誤實在的,我一直用另一個方法,它在所有情況下工作。爲了使用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