c#linq discrad InsertOnSubmit

时间:2016-04-03 16:22:20

标签: c# linq submitchanges

使用SubmitChanges()和InsertOnSubmit()时遇到问题, 如果SubmitChanges失败并引发异常,则更改集仍将填充db中存在冲突的对象(例如,主键已存在)。问题是,如果我重新执行在数据库中插入元素的代码段,则SubmitChanges会失败,因为具有错误主键的对象位于更改集中。 问题是如何从更改集中删除第一个obj?

private void bInsInserisci_Click(object sender, RoutedEventArgs e)
    {
        Prodotto tmp = new Prodotto();
        try {
            tmp.idProdotto = InsProdCodProd.Text;
            tmp.tempo = Int32.Parse(InsProdTemp.Text);
            tmp.note = InsProdNote.Text;
            prodotti.InsertOnSubmit(tmp);
            db.SubmitChanges();
        }
        catch {
            System.Data.Linq.RefreshMode.KeepCurrentValues
        }

    }

谢谢

1 个答案:

答案 0 :(得分:0)

为什么不放弃上下文?请查看有关L2S datacontext生命周期的this文章。 "可以在SubmitChanges()之后使用DataContext,但必须小心。"