我正在使用实体框架。我的一个实体(MyEntity)依赖于一个"密钥",我通过执行一个存储在MyEntity范围之外的过程来获得该密钥(事实上,它甚至不存在于同一个上下文中,它是对单独程序集的调用)。一旦我得到这个"键",我也会执行一些其他操作(基本上是设置 MyEntity 的其他属性),然后我调用上下文。保存更改() 以保存更改。
我的问题是...调用 Context.SaveChanges() 两次可以吗?一旦我有了"密钥",又在我设置了MyEntity的其他属性之后再次?我问的原因是,一旦我有了"密钥",我必须将其与我正在使用的当前 MyEntity 实例绑定,否则我最终会得到重复/孤立。如果发生某些事情并且MyEntity对象的其他属性未保存,则这不是致命的问题。
是的,我知道,理想情况下,这将在一笔交易中完成,但我们并不总是有那么奢侈:(
谢谢!
我认为这没有问题。但是您必须记住在第一次保存后设置myEntity.State = EntityState.Modified
。
忽略您自己注意到的这个系统的问题,调用 SaveChanges() 两次应该没有问题。