为什么ModelState管理器不允许我删除记录?

时间:2016-01-01 02:34:25

标签: asp.net-mvc entity-framework asp.net-mvc-4

首先祝大家新年快乐!!!!

我有以下代码从db表tr_shoppingCart

中删除记录
 tr_ShoppingCart cart = new tr_ShoppingCart
                        {
                            cartId = sc.CartId,
                            CartGenDt = sc.CreateTime,
                            UserId = ((SessionData)Session["object"]).sessObj.UserId,
                            prodId = obj.prodId,
                            Qnty = obj.Qnty,
                            Total = obj.Total
                        };


                        if (ModelState.IsValid)
                        {
                            //db.Entry(cart).State = System.Data.EntityState.Deleted;
                            db.tr_ShoppingCart.Attach(cart);
                            db.tr_ShoppingCart.Remove(cart);
                            db.SaveChanges();
                        }

但它给出了错误:

  

ObjectStateManager中已存在具有相同键的对象。   ObjectStateManager无法跟踪具有相同对象的多个对象   键。

enter image description here

这是我的数据库表tr_ShoppingCart

enter image description here

1 个答案:

答案 0 :(得分:0)

更详细地解释了这个问题here。我认为cartId是你的关键。检查sc.CartId是否已经在tr_ShoppingCart列表中。如果是,则必须确保正确生成ID。