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的对象资源管理器或建立并运行项目。