SqlException:无效的对象名称'Movie'

时间:2017-05-08 18:39:21

标签: c# sqlite asp.net-core asp.net-core-mvc entity-framework-core

我正在尝试按照以下链接中的教程创建一个应用程序,该应用程序显示来自具有crud功能的数据库的电影列表,但我正在尝试添加用户登录。 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/

我一直在试图弄清楚如何添加和更新Movie数据库的迁移。当我在没有用户登录的情况下按照教程进行操作时,我能够做到这一点,但是一旦我添加了用户登录,就会出现一个我没有抓到的问题。

在创建模型类之后,我尝试将以下步骤应用于迁移

  1. 转到命令行并访问项目中的文件夹 它
  2. 应用以下命令
    • dotnet restore
    • dotnet ef migrations add --context MvcMovie2Context(当我运行此命令时,我得到(缺少必需的参数''。)错误)
    • dotnet ef database update --context MvcMovie2Context (此命令似乎因某种原因而起作用)
  3. 当我运行应用程序并单击电影链接时,我收到以下错误

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

    我查看了我的模型,视图和控制器类,检查是否输入错误或语法错误导致对象名称“电影”无效,所以我认为这意味着我的电影数据库没有被创建

    我已按照教程

    多次重启项目

    我附上了命令行错误和浏览器错误的屏幕截图。如果有人有任何可以提供给我的提示或建议,我将不胜感激。谢谢!

    error messages

3 个答案:

答案 0 :(得分:1)

您的数据库中是否有MoviesMovie表?

由于您说dotnet ef migrations add --context MvcMovie2Context失败,所以让我相信您的模型没有反映在数据库架构中。此外,据我所知,您需要提供迁移名称,这可能是您收到错误的原因。

请尝试运行以下命令。

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

2。dotnet ef database update --context MvcMovie2Context

希望此时间第1步将成功运行,您应该会看到包含Movie实体架构的迁移文件。在第2步之后,您应该在数据库中看到相应的表。

答案 1 :(得分:1)

由于错误为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
  3. 然后再次检查SQL Server对象资源管理器或构建并运行您的项目。

答案 2 :(得分:0)

即使正确创建了所有表,我也遇到了类似的错误。原来,我的连接字符串错误。