SaveChanges
中的呼叫方法DbContext
将使用默认保存选项SaveChanges
呼叫ObjectContext
中的SaveOptions.AcceptAllChangesAfterSave
。
因此,所有更改都将在保存后进行。
我想在手动模式下控制它:
现在,2和3在一个操作中联合起来,所以我不能在2到3之间做一些操作。我怎么能分开呢?
答案 0 :(得分:2)
基于Ivan Stoev的评论:
internal sealed class TestContext : DbContext
{
protected ObjectContext ObjectContext => ((IObjectContextAdapter)this).ObjectContext;
public override int SaveChanges()
{
//detect all changes in context
ChangeTracker.DetectChanges();
//write changes to database
var result = ObjectContext.SaveChanges(System.Data.Entity.Core.Objects.SaveOptions.None);
//do some actions with entities
DoStuff();
//accept all changes in entities
ObjectContext.AcceptAllChanges();
return result;
}