0

我在使用 SubmitChanges() 和 InsertOnSubmit() 时遇到问题,如果 SubmitChanges 失败并引发异常,则更改集仍然填充有数据库中存在冲突的对象(例如,主键已经存在)。问题是,如果我重新执行在数据库中插入元素的代码,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
        }

    }

谢谢

4

1 回答 1

0

为什么不丢弃上下文?看看这篇关于 L2S 数据上下文生命周期的文章。“ DataContext 可以在 SubmitChanges() 之后使用,但必须小心。”

于 2016-04-03T17:18:59.607 回答