2009-08-20 79 views
0

我應該打擾做這個檢查,看看對象是否保存正確?Linq SaveChanges問題

if (objectContext.SaveChanges() > 0) 

它應該只是拋出一個異常,如果沒有,對不對?

回答

2

根據msdn documentation,SaveChanges()方法將返回新增,修改或刪除的記錄數。它可能拋出的異常是InvalidOperationException或OptimisticConcurrencyException。

我認爲在檢查記錄數方面有一些價值。如果您發出試圖修改或刪除的有效語句,但沒有任何要修改或刪除的內容,它只會返回0,即使不會有例外,因爲從技術上講沒有任何錯誤發生。

2

根據MSDN

的SaveChanges一個 事務中運行。如果任何髒 ObjectStateEntry對象不能 持續存在,SaveChanges將滾動 返回該事務,並拋出 異常。

所以,你會想嘗試/趕上例外。如果你想知道受影響的記錄數然後在try塊中,你將有int recordsAffected = objectContext.SaveChanges();

看看MSDN鏈接的例子。