作法:指定並行例外狀況的擲回時機
在 LINQ to SQL 中,當物件由於開放式同步存取衝突而未更新時,就會擲回 ChangeConflictException 例外狀況。 如需詳細資訊,請參閱開放式同步存取:概觀。
將變更提交至資料庫之前,您可以指定何時應擲出並行例外狀況:
在第一次失敗時擲出例外狀況 (FailOnFirstConflict)。
完成所有更新嘗試、累積所有失敗,並且在例外狀況中報告所累積的失敗 (ContinueOnConflict)。
擲出後,ChangeConflictException 例外狀況會提供 ChangeConflictCollection 集合的存取權。 此集合會提供每個衝突的詳細資訊 (對應至失敗的單一更新嘗試),其中包含 MemberConflicts 集合的存取權。 每個成員衝突都會對應至未通過並行存取檢查之更新中的單一成員。
範例
下列程式碼會顯示有兩個值的範例。
Northwnd db = new Northwnd("...");
// Create, update, delete code.
db.SubmitChanges(ConflictMode.FailOnFirstConflict);
// or
db.SubmitChanges(ConflictMode.ContinueOnConflict);
Dim db As New Northwnd("...")
' Create, update, delete code.
db.SubmitChanges(ConflictMode.FailOnFirstConflict)
' or
db.SubmitChanges(ConflictMode.ContinueOnConflict)