时间:2019-03-08 标签:c#linqdiscradInsertOnSubmit

c# linq discrad InsertOnSubmit

我在使用 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
        }

    }

谢谢

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