0

我遇到了一个问题,我的列表框无法更新数据。我有 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 = "";
        }
   }
4

3 回答 3

0

尝试添加

db.ObjectStateManager.ChangeObjectState(<yourObject>, EntityState.Modified);

在 db.SaveChanges() 之前;

于 2012-09-19T08:29:19.953 回答
0

听起来您的 trolleyservice 有一个 TimingID 标识列。所以数据库会为你创建键值,你不能自己设置它们。

如果您希望能够设置该值,也许您应该考虑将其设为非关键字段。

于 2012-09-19T08:22:24.363 回答
0

需要说对象被修改,然后保存。

Database.ObjectStateManager.ChangeObjectState(yourObject, EntityState.Modified);
Database.SaveChanges();
于 2012-09-19T08:25:43.267 回答