2011-05-17 22 views
1

我正在使用實體框架。我的一個實體(MyEntity)依賴於我通過執行存儲過程而獲得的「密鑰」,該存儲過程超出了MyEntity的範圍(事實上,它甚至不存在於同一個上下文中,它的a打電話給一個單獨的程序集)。一旦我得到這個「關鍵」,我也執行一些其他的操作(基本上設置MyEntity的其他屬性),然後我調用context.SaveChanges()來保存更改。何時調用Context.SaveChanges

我的問題是...可以兩次調用Context.SaveChanges()嗎?一旦我有了「鑰匙」,並且在我設置了MyEntity的其他屬性之後又一次?我問的原因是,一旦我擁有「鑰匙」,我必須將其與當前正在使用的MyEntity實例綁定,否則我將以重複/孤兒結束。如果發生什麼事情,MyEntity對象的其他屬性沒有保存,那麼它不是一個致命的問題。

是的,我知道,理想的情況是在一個事務中進行,但我們不總是有這種奢侈:(

謝謝!

回答

2

我看不出的問題。但是,你必須記住設置myEntity.State = EntityState.Modified第一後保存。

+0

感謝擡起頭來! – Robert 2011-05-18 07:57:47

1

忽略這個系統,你自己已經注意到這些問題,應該有是沒有問題的SaveChanges調用()的兩倍。