0

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

无法更新 EntitySet 'ShoppingCart',因为它有一个 DefiningQuery 并且 ModificationFunctionMapping 元素中不存在 InsertFunction 元素来支持当前操作。

代码是:`

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);
                }
            }
        }

`

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

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

System.Data.UpdateException 未被用户代码处理 Message=更新条目时发生错误。有关详细信息,请参阅内部异常。

4

1 回答 1

0

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

于 2012-12-13T08:43:32.363 回答