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

保存する前に、オブジェクトが変更されたと言う必要があります。

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

あなたの trolleyservice には TimingID の ID 列があるようです。そのため、データベースがキー値を作成し、自分で設定することはできません。

その値を設定できるようにしたい場合は、非キー フィールドにすることを検討する必要があります。

于 2012-09-19T08:22:24.363 に答える
0

追加してみてください

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

前 db.SaveChanges();

于 2012-09-19T08:29:19.953 に答える