Asp.net mvc 异常用户未处理的System.Data.SqlClient.SqlException:对象名称无效

Asp.net mvc 异常用户未处理的System.Data.SqlClient.SqlException:对象名称无效,asp.net-mvc,Asp.net Mvc,我和V E R Y刚开始学习ASP.NET MVC core,我遇到了一个困扰我的问题(我希望有人能指出我的错误所在) 我学习了一门关于Puralsight()的课程,并学习了模块6第7节(创建一个简单的视图组件)。 它向您展示了如何在每个页面上添加导航栏和购物车(链接项目计数器)。 当我剪切“n”将代码片段粘贴到相应的页面中,然后启动IIS express查看网站时,网站失败,浏览器中出现以下消息: HTTP Error 502.3 - Bad Gateway The specifie

我和V E R Y刚开始学习ASP.NET MVC core,我遇到了一个困扰我的问题(我希望有人能指出我的错误所在)

我学习了一门关于Puralsight()的课程,并学习了模块6第7节(创建一个简单的视图组件)。 它向您展示了如何在每个页面上添加导航栏和购物车(链接项目计数器)。 当我剪切“n”将代码片段粘贴到相应的页面中,然后启动IIS express查看网站时,网站失败,浏览器中出现以下消息:

    HTTP Error 502.3 - Bad Gateway
The specified CGI application encountered an error and the server terminated the process.
Most likely causes:
The CGI application did not return a valid set of HTTP errors.
A server acting as a proxy or gateway was unable to process the request due to an error in a parent gateway.
Things you can try:
Use DebugDiag to troubleshoot the CGI application.
Determine if a proxy or gateway is responsible for this error.
Detailed Error Information:
Module
    AspNetCoreModule
Notification
    ExecuteRequestHandler
Handler
    aspNetCore
Error Code
    0x80072ee2
Requested URL
    http://localhost:64923
Physical Path
    c:\users\MYDIRECTORY\visual studio 2017\Projects\BethanysPieShop\BethanysPieShop
Logon Method
    Anonymous
Logon User
    Anonymous
Request Tracing Directory
Visual Studio Community 2017在ShoppingCart.cs文件中突出显示了这段代码(特别是在花括号中)

        public List<ShoppingCartItem> GetShoppingCartItems()
    {
        return ShoppingCartItems ??
               (ShoppingCartItems =
                   _appDbContext.ShoppingCartItems.Where(c => c.ShoppingCartId == ShoppingCartId)
                       .Include(s => s.Pie)
                       .ToList());
    }
我已经找到了一行代码,当注释掉后,允许站点加载(减去购物车详细信息)。它位于共享文件夹中的_Layout.chtml文件中:-

@await Component.InvokeAsync('ShoppingCartSummary')
注释掉这一行可以让网站加载,但这只是因为它没有调用购物车(因此,类似于说你的车是固定的,只要你不使用它)

我有一个ShoppingCartSummary.cs文件

    var items = _shoppingCart.GetShoppingCartItems();
我已经用它代替了

var items = new List<ShoppingCartItem>() { new ShoppingCartItem(), new ShoppingCartItem() };
var items=new List(){new ShoppingCartItem(),new ShoppingCartItem()};
因此,购物车具有虚拟条目,但在启动IISExpress时仍会出现相同的错误(System.Data.SqlClient.SqlException:无效的对象名称“ShoppingCartItems”。)

有人能指出遗漏/做错了什么吗


提前感谢

好的,我现在已经整理好了,所以向其他有类似问题的人发布

There is already an object named 'Categories' in the database message
这是一条红鲱鱼。 修复方法是,删除整个数据库(通过SQL Server对象资源管理器,右键单击数据库并选择删除)。。。诚然,对于某些人来说,这不是理想的解决方案,然后,在解决方案资源管理器中,删除“迁移”文件夹下的所有内容(再次单击鼠标右键,删除)。 关闭VS.打开VS。 打开Sql Server对象资源管理器。 打开包管理器,然后运行

Add-Migration initial
然后

然后,您可以在SQL Server对象管理器中看到正在装箱的数据库和文件。。。。然后创建缺少的表


我假设_MigrationHistory文件有一个初始问题。

您的执行选项是说对象
ShoppingCartItems
在您的数据库中不存在。我已经运行了
添加迁移AddShoppingCartItem
然后
更新数据库
,我可以在迁移文件夹中看到一个名为20170612093119_AddShoppingCartItem.cs(连同20170612030702_initial.cs)。使用
@await Component.InvokeAsync('ShoppingCartSummary')
代码注释,网站可以正常启动,包括AppDbContext文件中的表引用(其中包括行
public DbSet shoppingcarttitems{get;set;}
,因此我不确定为什么(当其他(饼图和类别)的数据是access/List。使用SQL Server对象资源管理器,我可以在LocalDB\Databases\ProjectName\Tables中深入查看
dbo.Pies
dbo.Categories
,但没有ShoppingCartItems。那么,这是否意味着我的AppDbContext功能不正常?我想我已经找到了错误,这反过来会导致OP消息。当我运行
更新数据库
改为
完成
我看到
System.Data.SqlClient.SqlException:数据库中已经有一个名为“Categories”的对象。位于System.Data.SqlClient.SqlConnection.OnError(SqlException exception,Boolean breakConnection,
我猜更新失败是因为
数据库中已经有一个名为“Categories”的对象,
消息…如果我是正确的,我该如何纠正?
Add-Migration initial
Update-Database