實體框架7,visual studio 2015,控制台命令不起作用

asp.net-core-mvc c# entity-framework-core visual-studio-2015

我正在使用ASP.NET 5 Web應用程序模板(使用EF7和MVC 6),具有單獨的用戶帳戶的模板,我有以下問題:

當我將自己的DBSet添加到ApplicationDbContext類,然後轉到嘗試使用這個新DBSet的頁面時,它不起作用,我得到這個:

A database operation failed while processing the request.
SqlException: Invalid object name 'WallMessageModel'. 

There are pending model changes for ApplicationDbContext
Scaffold a new migration for these changes and apply them to the database from the command line:

 dnx . ef migration add [migration name] 
 dnx . ef migration apply

現在,當我運行這些命令或任何“dnx”命令時,我得到:

A database operation failed while processing the request.
SqlException: Invalid object name 'WallMessageModel'. 

There are pending model changes for ApplicationDbContext
Scaffold a new migration for these changes and apply them to the database from the command line:

 dnx . ef migration add [migration name] 
 dnx . ef migration apply

如果我試圖運行任何“k”命令我得到:

A database operation failed while processing the request.
SqlException: Invalid object name 'WallMessageModel'. 

There are pending model changes for ApplicationDbContext
Scaffold a new migration for these changes and apply them to the database from the command line:

 dnx . ef migration add [migration name] 
 dnx . ef migration apply

我正在使用"EntityFramework.SqlServer": "7.0.0-beta5", "EntityFramework.Commands": "7.0.0-beta5"

我嘗試使用7.0.0- *版本,它仍然不適合我。你能告訴我我做錯了什麼嗎?

基本上,我認為我的機器上沒有正確安裝EF命令(通過Visual Studio 2015 / PowerShell)。但是,似乎沒有任何參考顯示如何安裝這些​​(在使用EF7時它們不應該內置到VS2015中嗎?)。

一般承認的答案

將另一個DbSet添加到ApplicationDbContext類或添加/修改任何其他現有實體類時,運行時模型將從數據庫模型更改。因此,您需要構建一個新的遷移並將其應用於數據庫,以便兩個模型彼此同步。正如異常消息所示,您應該運行這些命令來執行此操作。

對於那些未運行的命令(或任何其他dnx命令),dnx命令不是在VS2015中構建的。它們來自Visual Studio的Microsoft ASP.NET和Web Tools擴展。請確認您已為VS安裝了它。這將使您能夠運行dnx命令。 k是非常古老的術語,它被重命名為dnx 。 beta5也是舊版本,最新版本是RC1,它有更多功能。有關如何安裝和使用Web Tools的詳細信息,請訪問https://get.asp.net/




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因