【发布时间】:2015-05-03 19:18:56
【问题描述】:
我有这个删除方法:
private void btnDeleteOrderLine_Click(object sender, EventArgs e)
{
OrderLine orderLine = (OrderLine)dgvOrderLine.SelectedRows[0].DataBoundItem;
db.OrderLines.Remove(orderLine);
db.SaveChanges();
refreshGrid();
}
当我单击删除按钮时,我收到此错误:
无法删除该对象,因为它在
ObjectStateManager.
我发现这是因为Context 类有两个实例。所以,我尝试了这个:
private void btnDeleteOrderLine_Click(object sender, EventArgs e)
{
OrderLine orderLine = (OrderLine)dgvOrderLine.SelectedRows[0].DataBoundItem;
db.OrderLines.Attach(orderLine); // added this part
db.OrderLines.Remove(orderLine);
db.SaveChanges();
refreshGrid();
}
然后这给了我以下错误:
一个实体对象不能被多个实例引用
IEntityChangeTracker.
如何解决这个问题并从 Context DbSet 中删除一个对象?
【问题讨论】:
标签: c# .net winforms linq entity-framework