我有点问题。每次尝试更新我的实体集时,我都会遇到以下错误。
无法更新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处理 更新条目时发生错误。查看内部异常 的信息。
答案 0 :(得分:0)
如果从数据库视图,自定义数据库查询或数据库表没有主键映射实体集,通常会发生这种情况。