c# - 当我尝试更新一行时,我得到一个外键错误。为什么?
问题描述
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#。
解决方案
尝试在删除后提交您的更改,您需要在重新添加新条目之前保存数据库。
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();
推荐阅读
- php - 如何修复 kartik\dynagrid\DynaGrid 中的 filterModel 错误?
- php - 为什么异或结果不一样,0变成1
- python - 在 Robot 框架中修改具有硬编码参数的用户定义关键字
- reactjs - ReactJS Iframe 未加载页面
- java - 如何在 Android 中移动到第二个布局?
- python - 我如何从 bs4 在 python 中选择这个元素
- mysql - 如何在sql中插入带有SELECT值的新记录
- c# - 以 XmlDocument 作为返回类型的 Web 方法在 asp.net 核心的 SoapCore 中失败
- c# - DatagridView 按列折叠
- google-cloud-platform - 如何在 IPv6 (GKE) 上公开 TCP 服务