1

我想從下面的鏈接按照教程來創建一個應用程序,顯示從具有crud功能的數據庫的電影列表,但我試圖添加用戶登錄。 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/SqlException:無效的對象名稱'電影'

我一直在想出如何添加和更新電影數據庫的遷移。我能夠在沒有用戶登錄的情況下按照教程進行操作,但是一旦我添加了用戶登錄,似乎就有一個問題,我沒有抓住。

後,我創建模型類,我想申請以下步驟進行遷移

  1. 轉到命令行,並與項目訪問 文件夾它
  2. 應用下面的命令
    • dotnet restore
    • dotnet ef migrations add --context MvcMovie2Context(當我運行此命令時,我得到的(缺少必需的參數'。)錯誤)
    • dotnet ef database update --context MvcMovie2Context (此命令似乎是工作由於某種原因)

當我運行的應用程序,並單擊影片鏈接時,我收到以下錯誤

SqlException: Invalid object name 'Movie'. 
System.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__107_0(Task<SqlDataReader> result) 

我有通過我的模型,視圖和控制器類來查看我是否犯了一個打字錯誤或語法錯誤,導致對象名稱「Movie」無效,所以我認爲這意味着我的Movie數據庫沒有創建。

我已經重新啓動。我已在命令行中的錯誤和瀏覽器錯誤的屏幕截圖教程

以下項目多次。如果有人有任何暗示或建議可以提供給我,我將不勝感激。謝謝!

error messages

回答

1

你在你的數據庫中有一個MoviesMovie表?

既然你說dotnet ef migrations add --context MvcMovie2Context失敗,讓我相信你的模型沒有反映在數據庫模式。另外,就我所知,您需要提供遷移名稱,這可能是您接收錯誤的原因。

請嘗試運行以下命令。

1. dotnet ef migrations add "AddedMovieEntity" --context MvcMovie2Context

2. dotnet ef database update --context MvcMovie2Context

希望這1步將成功運行,從那裏你應該看到,包括對電影的實體架構遷移文件。第2步之後,您應該可以在數據庫中看到相應的表格。

0

由於錯誤是SqlException: Invalid object name 'Movie',這意味着名爲'Movie'的表尚未創建,或者您所引用的數據庫尚未創建。

要查看數據庫或表'Movie'是否已創建,請打開SQL Server對象資源管理器並檢查數據庫名稱是否與appsettings.json中的數據庫名稱相同。如果數據庫或表尚未創建,則可能需要遷移。

要遷移,開放Tools-> NuGet Package Manager-> Package Manager Console和打以下命令:

  1. Add-Migration MigrationName
  2. Update-Database

然後再次檢查SQL Server的對象資源管理器或建立並運行項目。