EF4回滚刷新不刷新商店值

时间:2017-02-11 16:28:46

标签: entity-framework-4 rollback

我在EF4中有这个:

SomeClass ObjectX;

using (MyBDcontext ctx = ModelHelper.GetObjectContext())
  ObjectX = ctx.GetObjectByKey(Entity.EntityKey);

ObjectX.SomeProperty = StoreValue + 1;

using (MyBDcontext ctx = ModelHelper.GetObjectContext()){

//I get the same object
SomeClass AnotherObjectX = (SomeClass)ctx.GetObjectByKey(ObjectX.EntityKey);

//I do a DeepCopy(copyFrom, copyTo)
ModelHelper.DeepCopy(ObjectX, AnotherObjectX);

var objects = (from entry in ctx.ObjectStateManager.GetObjectStateEntries(
                                          EntityState.Modified)
                          where entry.EntityKey != null
                          select entry.Entity);

ctx.Refresh(RefreshMode.StoreWins, objects);
}

我的问题是运行Refresh()后的对象ObjectX具有相同的值,而不是存储值。为什么呢?

var对象中的

存在一个ObjectX实例,并使用商店值刷新,但我的意图不会改变。

对不起我的英语,谢谢你的帮助...

编辑:

谢谢Gert的帮助,我会试着解释一下自己:

//存储值

ObjectX.SomeProperty = 0

//在内存中编辑

ObjectX.SomeProperty = 1

//出于某种原因,我想取消所有更改并返回商店值ctx.Refresh(RefreshMode.StoreWins,objects);

// ObjectX.SomeProperty的值为1,它的值为0(商店值)

0 个答案:

没有答案