更改跟踪器正确的手柄

时间:2014-03-05 16:17:05

标签: c# entity-framework

实际上我在DbContext添加了两个实体,但如果按下取消按钮,我必须将其删除。

我该怎么做?

有一种类似的方法:

dbContext.Entry(MyEntity).Remove(); 

我需要这个,因为在取消后的下一个文件中,我的旧实体可能被误保存。

我尝试的事情:

  • Added状态更改为Unchanged但会引发异常。

更新1:通常我创建一个新实例并将其添加到上下文

MyEntityType entity = new MyEntityType();
dbContext.MyEntityType.Add(entity);

2 个答案:

答案 0 :(得分:1)

当您点击取消时,您应该执行您需要执行的操作,然后在需要时创建上下文。由于某种原因,有一群程序员只使用1个上下文。应打开上下文,添加对象,附加,删除等。然后保存,然后关闭。它们不应该长时间开放。

如果您正在使用dbContext来管理稍后将保存的对象集合(不确定的时间长度),那么使用其他一些集合来存储它们。然后,当您准备保存更改时,创建您的上下文,添加,附加,删除和保存;然后立即关闭。

答案 1 :(得分:0)

您应该将Added州更改为Detached而不是Unchanged

尝试阅读documentation