我正在使用Entity Framework。我的一个实体(MyEntity)依赖于一个“密钥”,我通过执行一个存在于MyEntity范围之外的存储过程得到(事实上它甚至不存在于同一个Context中,它是一个打电话给单独的大会)。一旦我得到这个“密钥”,我也执行其他一些操作(基本上设置MyEntity的其他属性)然后我调用context.SaveChanges()来保存更改。
我的问题是......可以两次调用Context.SaveChanges()吗?一旦我拥有了“密钥”,并且在设置了MyEntity的其他属性后又一次?我问的原因是,一旦我拥有“密钥”,我必须将其与我正在使用的当前MyEntity实例联系起来,否则我将最终得到重复/孤儿。如果发生了某些事情并且没有保存MyEntity对象的其他属性,那么这不是一个致命的问题。
是的,我知道,理想情况下,这将在一次交易中完成,但我们并不总是那么奢侈:(
谢谢!
答案 0 :(得分:2)
我没有看到问题。但是你必须记住在第一次保存后设置myEntity.State = EntityState.Modified
。
答案 1 :(得分:1)
忽略您自己注意到的这个系统的问题,调用SaveChanges()两次应该没问题。