2012-05-28 65 views
0

所以這是我的代碼LINQ到SQL - 失敗後刪除刷新變化

var r = (from c in db.veClientes where c.Codigo.Equals(cod) select c).FirstOrDefault(); 
db.veClientes.DeleteOnSubmit(r); 
try 
{ 
    db.SubmitChanges(); 
} 
catch 
{ 
    r.DeBaja = 'S'; 
    db.SubmitChanges(); 
} 

基本上,我得到一個客戶,嘗試將其刪除,如果我不能我需要更新客戶端和某個字段設置爲' S」。 問題是第二次提交更改仍然想執行刪除,並再次失敗,我不能刪除,因爲關係,所以我只是禁用該項目。 如何刷新更改,以便更新而不是刪除和更新?

回答

0

試試這個:

try 
{ 
    db.SubmitChanges(); 
} 
catch 
{ 
    db.Refresh(RefreshMode.OverwriteCurrentValues, r); 
    r.DeBaja = 'S'; 
    db.SubmitChanges(); 
} 
+0

不,它仍試圖刪除實體和失敗。 – gosukiwi

1

試試這個方法: -

var r = (from c in db.veClientes where c.Codigo.Equals(cod) select c).FirstOrDefault(); 
try 
{ 
    r.DeBaja = "S"; 
    db.SubmitChanges(); 
} 
catch (Exception e) 
{ 
    Console.WriteLine(e); 
} 
+0

智能,首先更新然後刪除。這是另一個步驟,但在我的應用程序,根本無關緊要。不是解決方案,但它的工作原理謝謝! – gosukiwi