我對EF和事務處理有點問題。EF Transactions MSDTC?
我試圖做到這一點:
using(TransactionScope scope = new TransactionScope())
{
using(MyEntities model = new MyEntities())
{
MyT thing = new MyT{ Value1 = "bla", Value2 = "bla2", Value3 = "foo" };
model.MyT.AddObject(thing);
model.SaveChanges();
thing.Value4 = Service.Call("bar");
// this call causes an exception in MSDTC
model.SaveChanges();
scope.Complete();
}
}
我之所以這樣做是因爲我想做一個插入到數據庫所以MYT有一個唯一的ID我passto服務當我做該電話然後從服務中獲取唯一的參考和狀態,描述在通話期間發生了什麼,然後我需要追加到記錄中。
我的理解是,一個單一的交易過程中,你只能更新記錄一次/使插入電話,但你不能這樣做既因爲這會產生某種原因出現問題......我曾經有一個MSDN文章說解釋了爲什麼無法完成這個邏輯原因(可能與鎖有關)。
所以我的問題是如何克服這個,但是保證在任何這些調用我仍然可以回滾的任何故障的事件。
你有什麼問題嗎?你發佈的代碼是如何工作的?它看起來對我好。 –
什麼是例外? – JNappi
異常是一個com +異常,它簡單地讀取「在com +對象中發生的異常」,就是這樣...事件中沒有記錄任何沒有幫助的異常。 – War