何时调用Context.SaveChanges

时间:2011-05-17 22:51:04

标签: c# entity-framework-4 data-access

我正在使用Entity Framework。我的一个实体(MyEntity)依赖于一个“密钥”,我通过执行一个存在于MyEntity范围之外的存储过程得到(事实上它甚至不存在于同一个Context中,它是一个打电话给单独的大会)。一旦我得到这个“密钥”,我也执行其他一些操作(基本上设置MyEntity的其他属性)然后我调用context.SaveChanges()来保存更改。

我的问题是......可以两次调用Context.SaveChanges()吗?一旦我拥有了“密钥”,并且在设置了MyEntity的其他属性后又一次?我问的原因是,一旦我拥有“密钥”,我必须将其与我正在使用的当前MyEntity实例联系起来,否则我将最终得到重复/孤儿。如果发生了某些事情并且没有保存MyEntity对象的其他属性,那么这不是一个致命的问题。

是的,我知道,理想情况下,这将在一次交易中完成,但我们并不总是那么奢侈:(

谢谢!

2 个答案:

答案 0 :(得分:2)

我没有看到问题。但是你必须记住在第一次保存后设置myEntity.State = EntityState.Modified

答案 1 :(得分:1)

忽略您自己注意到的这个系统的问题,调用SaveChanges()两次应该没问题。