实体框架错误

时间:2012-12-07 10:19:31

标签: asp.net visual-studio-2010 entity-framework

我有点问题。每次尝试更新我的实体集时,我都会遇到以下错误。

  

无法更新EntitySet'ShoppingCart',因为它有一个   定义查询并且没有InsertFunction元素   ModificationFunctionMapping元素支持当前   操作

代码是:`

public void AddItem(string cartID, string productID, string quantity)
        {
            using (CommerceEntities db = new CommerceEntities())
            {
                try
                {
                    var myItem = (from c in db.ShoppingCarts
                                  where c.CartID == cartID &&
                                      c.ProductID == productID
                                  select c).FirstOrDefault();
                    if (myItem == null)
                    {
                        ShoppingCart cartadd = new ShoppingCart();
                        cartadd.CartID = cartID;
                        cartadd.Quantity = quantity;
                        cartadd.ProductID = productID;
                        cartadd.DateCreated = DateTime.Now;
                        db.ShoppingCarts.AddObject(cartadd);
                    }
                    else
                    {
                        myItem.Quantity += Convert.ToInt32(quantity);
                    }
                    db.SaveChanges();
                }
                catch (Exception exp)
                {
                    throw new Exception("ERROR: Unable to Add Item to Cart - " +exp.Message);
                }
            }
        }

`

请帮帮我。如果需要,我可以提供更多信息,我是这个实体框架模型的新手并且遵循This page上的教程。

更新:我添加了主键并重新设计了整个数据库。现在错误更改为:

  

System.Data.UpdateException未被用户代码Message = An处理   更新条目时发生错误。查看内部异常   的信息。

1 个答案:

答案 0 :(得分:0)

如果从数据库视图,自定义数据库查询或数据库表没有主键映射实体集,通常会发生这种情况。