2012-07-22 96 views
1

我需要一些想法來處理實體框架中的交易。實體框架中的交易

讓我們考慮一個小例子。

在我的數據庫中,我有一個表A與自動生成的標識列id,我有一個表BA(id)的參考鍵。

在我需要將數據插入表AB的情況下,我想開始一個事務。可以說一個新行插入到A。我需要插入B插入時需要使用的新插入的身份(id)值。

有人可以給我帶領處理這種情況?在這種情況下我們是否需要真正使用交易?

回答

1

當你調用的SaveChanges時,更新在一個事務中進行。如果出現故障,則全部回滾。請參閱msdn上的here。特別是「備註」部分。

+0

對我來說,我需要調用第一筆交易後的SaveChanges用於檢索表A中的自動生成的標識列,我將數據插入過程中如果您有外鍵設置使用到表B中 – Brainchild 2012-07-22 12:38:56

+0

,實體框架將爲您照顧這一點。例如'Table1Record.Table2CollectionProperty.Add(Table2Record); Table2Record.Table1NavigationProperty = Table1Record; myContext.SaveChanges();' – 2012-07-22 12:43:19

+0

坦克的幫助,只增加了第一行就解決了問題。我不明白第二行(Table2Record.Table1NavigationProperty = Table1Record;),你能否詳細說明。它沒有第二行。 – Brainchild 2012-07-22 12:52:51