【发布时间】:2015-07-18 14:37:53
【问题描述】:
我正在做一个我应该制作电子书店的项目。这是一个实体关系模型,我使用它在 SQL Server 中生成了一个数据库。
现在,在使用以下代码生成账单时,我在为我的实体关系模型调用 SaveChanges() 方法时遇到了 An entity object cannot be referenced by multiple instances of IEntityChangeTracker. 异常,(ebs)
这里是代码。 我在会话中维护购物车。此外,用户 ID 也保留在会话中。
List<Title> cartItems = (List<Title>)Session["eStoreCart"];
int userid = Int32.Parse(Session["eStoreUserId"].ToString());
User us = ebs.Users.SingleOrDefault(u => u.UserId == userid);
Bill bl = new Bill();
bl.BillAmount = Decimal.Parse(lblBill.Text);
bl.BillDate = DateTime.Now;
foreach (Title item in cartItems)
{
bl.Titles.Add(item);
}
us.Bills.Add(bl);
ebs.SaveChanges();
Response.Redirect("Orders.aspx");
我对 Entity Framework 和 LINQ 完全陌生。因此,任何帮助解释正在发生的事情以及解决方法将不胜感激。
【问题讨论】:
-
您是否在
using块内访问ebs,如下所示:using (var ebs = new MyEntities()) { ... }? -
不,我不是。这是单个
Button控件下的代码。
标签: c# linq entity-framework exception