我正在尝试按照以下链接中的教程创建一个应用程序,该应用程序显示来自具有crud功能的数据库的电影列表,但我正在尝试添加用户登录。 https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/
我一直在试图弄清楚如何添加和更新Movie数据库的迁移。当我在没有用户登录的情况下按照教程进行操作时,我能够做到这一点,但是一旦我添加了用户登录,就会出现一个我没有抓到的问题。
在创建模型类之后,我尝试将以下步骤应用于迁移
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)
我查看了我的模型,视图和控制器类,检查是否输入错误或语法错误导致对象名称“电影”无效,所以我认为这意味着我的电影数据库没有被创建
我已按照教程
多次重启项目我附上了命令行错误和浏览器错误的屏幕截图。如果有人有任何可以提供给我的提示或建议,我将不胜感激。谢谢!
答案 0 :(得分:1)
您的数据库中是否有Movies
或Movie
表?
由于您说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
并点击以下命令:
Add-Migration MigrationName
Update-Database
然后再次检查SQL Server对象资源管理器或构建并运行您的项目。
答案 2 :(得分:0)
即使正确创建了所有表,我也遇到了类似的错误。原来,我的连接字符串错误。