我遇到了一个问题,即我的列表框无法更新数据。我有2张桌子,时间和电车服务。列表框从时序表中读取并显示数据。两个表都是相关的。每当我更新电车服务表中的时间时,它都会提示我这个错误:
属性'TimingID'是对象密钥信息的一部分,无法修改。
有人可以帮忙吗?
private void btnUpdateTS_Click(object sender, EventArgs e)
{
int ID = Int32.Parse(lblID.Text);
foreach (timing selectedTiming in lstTime.SelectedItems)
{
var EditTS = (from ets in db.trolleyservices
where ets.idtrolleyservice == ID
select ets).First();
EditTS.Type = txtType.Text;
EditTS.TimingID = selectedTiming.TimingID;
db.SaveChanges();
txtType.Text = "";
}
}
答案 0 :(得分:0)
听起来您的电车服务有一个TimingID标识列。因此,数据库将为您创建键值,您无法自己设置它们。
如果您希望能够设置该值,也许您应该考虑将其设为非关键字段。
答案 1 :(得分:0)
需要说在保存之前修改了对象。
Database.ObjectStateManager.ChangeObjectState(yourObject, EntityState.Modified);
Database.SaveChanges();
答案 2 :(得分:0)
尝试添加
db.ObjectStateManager.ChangeObjectState(<yourObject>, EntityState.Modified);
db.SaveChanges(); 之前的