我遇到了问题,我已使用 _db.Article.Add(artícle)
将实体添加到我的 DbContext,但想在执行 _db 之前撤消此操作。保存更改
。
我还没有找到任何东西,但我尝试使用_db.ChangeTracker
,遗憾的是还没有弄清楚。此外 _db.Entry(article).State = EntityState.Deleted
或 _db.Article.Remove(article)
也不起作用,因为该实体尚未在数据库中...
是否有可能将其从更改列表中删除?
最佳答案
您可以利用 DbContext.IObjectContextAdapter.ObjectContext 的显式实现到达底层 ObjectContext和 Detach您的实体,例如;
((IObjectContextAdapter)_db).ObjectContext.Detach(article);
语法上更简洁的方法是使用方法扩展 DbContext;
public class MyDbContext : DbContext
{
public void Detach(object entity) { ObjectContext.Detach(entity); }
}
...这将允许你简单地做;
_db.Detach(article);
关于c# - 撤消 DbContext.Add(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17037424/