2012-09-24 208 views
-1
try 
{ 
    Context.SaveChanges(); 
} 
catch(Exception e) 
{ 
    Log(e); 
} 
finally 
{ 
    Log("Complete"); 
} 

當Context.SaveChanges()被調用時,它靜默失敗。不會拋出異常,finally子句永遠不會被觸發。有沒有人遇到過這個?EF Context.SaveChanges()什麼都不做

+0

是否上下文有什麼變化?什麼是返回值'SaveChanges'? – Matthew

+0

重要嗎?如果沒有變化,'SaveChanges'正常返回,'finally'子句會被觸發(實際上,要求SaveChanges的返回值是好的;如果返回值)我想知道的是,你怎麼知道'finally'子句沒有被觸及,你是否在調試器中運行這個函數,在調用'SaveChanges'的時候設置了一個斷點,然後逐步完成?另外,Log是什麼樣的? – hvd

+0

是的,之前發生了很多變化我打電話給SaveChanges。我從數據庫中獲取一條記錄,更改相當多的值,並將記錄添加到與原始實體具有外鍵關係的表中,然後調用SaveChanges。我在交易範圍之內和之外都有這個。我也刪除了添加與外鍵關係表的行,看看它是否與它有任何關係,我仍然會得到相同的結果。 –

回答

2

到底我的問題是我的POCO文件沒有數據庫:( 我不知道爲什麼,雖然沒有拋出的異常匹配...

0

您的Log方法應該存在一些問題。

它是否有適當的功能重載。

+0

永遠不會遇到日誌記錄調用。 SaveChanges停止執行。 –