首页 > 解决方案 > 当我尝试更新一行时,我得到一个外键错误。为什么?

问题描述

throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();

这是我尝试更新一行时遇到的错误。我使用外键从不同的表中获取类型 ID。当我更新这个时,我得到了错误。更新名称就可以了。

这是我用来更新的代码。

            hetVoer.Naam = NaamTekst.Text;
        hetVoer.TypeId = Convert.ToInt32(TypeTekst.SelectedValue);
        hetVoer.Prijs = Decimal.Parse(PrijsTekst.Text);

        var item = (Voer)VoerTekst.SelectedItem;
        var delItem = from Voer in db.Voers
                      where Voer.Vid == item.Vid
                      select Voer;


        db.Voers.DeleteOnSubmit(item);
        db.Voers.InsertOnSubmit(hetVoer);
        db.SubmitChanges();

我使用 C#。

标签: c#

解决方案


尝试在删除后提交您的更改,您需要在重新添加新条目之前保存数据库。

        hetVoer.Naam = NaamTekst.Text;
    hetVoer.TypeId = Convert.ToInt32(TypeTekst.SelectedValue);
    hetVoer.Prijs = Decimal.Parse(PrijsTekst.Text);

    var item = (Voer)VoerTekst.SelectedItem;
    var delItem = from Voer in db.Voers
                  where Voer.Vid == item.Vid
                  select Voer;


    db.Voers.DeleteOnSubmit(item);
    db.SubmitChanges();
    db.Voers.InsertOnSubmit(hetVoer);
    db.SubmitChanges();

推荐阅读