C# Linq到SQL-删除失败后刷新更改

C# Linq到SQL-删除失败后刷新更改,c#,linq-to-sql,C#,Linq To 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(); } 基本上,我得到一个客户端,尝试删除它,如果我不能,我必须更新客户端并将

这是我的代码

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”。 问题是第二次submitChanges仍然希望执行删除,并且再次失败,因为关系,我无法删除,所以我只是禁用了该项。 如何刷新更改,以便只进行更新而不是删除和更新?

尝试以下操作:

try
{
    db.SubmitChanges();
}
catch
{
    db.Refresh(RefreshMode.OverwriteCurrentValues, r);
    r.DeBaja = 'S';
    db.SubmitChanges();
}
试着这样做:-

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);
}

不,它仍然尝试删除实体,但失败。智能,先更新,然后删除。这是另一个步骤,但在我的应用程序中,这一点都不重要。不是一个解决方案,但它是有效的!谢谢